diff -ur /home/kjetil/faust2/compiler/generator/dsp_aux.cpp ./generator/dsp_aux.cpp
--- /home/kjetil/faust2/compiler/generator/dsp_aux.cpp	2016-06-16 18:00:48.000000000 +0200
+++ ./generator/dsp_aux.cpp	2016-06-19 17:50:07.416834447 +0200
@@ -55,7 +55,15 @@
 {
     string base = basename((char*)filename.c_str());
     size_t pos = filename.find(".dsp");
-    return expandDSPFromString(base.substr(0, pos), path_to_content(filename), argc, argv, sha_key, error_msg);
+
+    string error_msg2;
+    string content = path_to_content(filename, error_msg2);
+    if (error_msg2 != "") {
+        error_msg = error_msg2;
+        return "";
+    }
+
+    return expandDSPFromString(base.substr(0, pos), content, argc, argv, sha_key, error_msg);
 }
 
 /*
@@ -104,7 +112,15 @@
 {
     string base = basename((char*)filename.c_str());
     size_t pos = filename.find(".dsp");
-    return generateAuxFilesFromString(base.substr(0, pos), path_to_content(filename), argc, argv, error_msg);
+
+    string error_msg2;
+    string content = path_to_content(filename, error_msg2);
+    if (error_msg2 != "") {
+        error_msg = error_msg2;
+        return "";
+    }
+
+    return generateAuxFilesFromString(base.substr(0, pos), content, argc, argv, error_msg);
 }
 
 EXPORT bool generateAuxFilesFromString(const string& name_app, const string& dsp_content, int argc, const char* argv[], string& error_msg)
diff -ur /home/kjetil/faust2/compiler/generator/llvm/llvm_dsp_aux.cpp ./generator/llvm/llvm_dsp_aux.cpp
--- /home/kjetil/faust2/compiler/generator/llvm/llvm_dsp_aux.cpp	2016-06-16 18:00:48.000000000 +0200
+++ ./generator/llvm/llvm_dsp_aux.cpp	2016-06-19 17:49:36.404289179 +0200
@@ -1150,10 +1150,15 @@
     gDSPFactoriesLock = 0;
 }
 
-EXPORT string path_to_content(const string& path)
+EXPORT string path_to_content(const string& path, std::string& error_msg)
 {
     ifstream file(path.c_str(), ifstream::binary);
-    
+
+    if (file.fail()) {
+      error_msg = "Unable to read file";
+      return "";
+    }
+      
     file.seekg(0, file.end);
     int size = file.tellg();
     file.seekg(0, file.beg);
@@ -1175,11 +1180,17 @@
                                                 const string& target, 
                                                 string& error_msg, int opt_level)
 {
-	string base = basename((char*)filename.c_str());
+    string base = basename((char*)filename.c_str());
     size_t pos = filename.find(".dsp");
     
     if (pos != string::npos) {
-        return createDSPFactoryFromString(base.substr(0, pos), path_to_content(filename), argc, argv, target, error_msg, opt_level);
+        string error_msg2;
+        string content = path_to_content(filename, error_msg2);
+        if (error_msg2 != "") {
+            error_msg = error_msg2;
+            return NULL;
+        }
+        return createDSPFactoryFromString(base.substr(0, pos), content, argc, argv, target, error_msg, opt_level);
     } else {
         error_msg = "File Extension is not the one expected (.dsp expected)\n";
         return NULL;
diff -ur /home/kjetil/faust2/compiler/libfaust.h ./libfaust.h
--- /home/kjetil/faust2/compiler/libfaust.h	2016-06-16 18:00:48.000000000 +0200
+++ ./libfaust.h	2016-06-19 17:30:05.394993514 +0200
@@ -93,7 +93,7 @@
 
 EXPORT std::string generateSHA1(const std::string& dsp_content);
 
-EXPORT std::string path_to_content(const std::string& path);
+EXPORT std::string path_to_content(const std::string& path, std::string& error_msg);
 
 EXPORT std::string reorganize_compilation_options(int argc, const char* argv[]);
 
