diff --git a/Demo.cpp b/Demo.cpp
index fb8fc4f9500cfe5999b892d1dd76f0eea73533af..6fb2fc590d7824a8b72f2c8c6147b68fbb0c9ef9 100644
--- a/Demo.cpp
+++ b/Demo.cpp
@@ -14,7 +14,7 @@ based  on original demo.cpp
 
 
 #define PROCESS_CENTER_VERSION_MAJOR 0
-#define PROCESS_CENTER_VERSION_MINOR 8
+#define PROCESS_CENTER_VERSION_MINOR 9
 
 //opencv
 #include <opencv2/opencv.hpp>
@@ -295,8 +295,9 @@ int main(int argc, char * argv[])
         }
         else
         {
-            cout<<"error loading file: "<< fileName<<", will abort"<<endl;
-            return  EXIT_FAILURE;
+            cout<<"error loading file: "<< fileName<<", will draw again"<<endl;
+            i--;
+            //return  EXIT_FAILURE;
         }
     }
 
@@ -306,6 +307,8 @@ int main(int argc, char * argv[])
     int everyPic=60*5;
 
     int frameCounter=0;
+    vector<string> myFileErrorList;
+
     for(frameCounter=0;frameCounter<amountFiles;frameCounter++)
     {
 
@@ -550,8 +553,8 @@ int main(int argc, char * argv[])
         }//end if the loaded picture has data
         else
         {
-            cout<<"error loading file: "<< fileName<<", will abort"<<endl;
-            return  EXIT_FAILURE;
+            cout<<"error loading file: "<< fileName<<", will skip this file"<<endl;
+            myFileErrorList.push_back(fileName);
         }
 
         //we calc the time which we used for a picture
@@ -577,6 +580,15 @@ int main(int argc, char * argv[])
     fs << "randomlist" <<  myRandomTrainList;
     fs.release();
 
+    //we write the random file list to a file
+    std::string nameOutErrorList =  outputDir + "fileErrorList.yml";
+
+    cout <<"amount of file errors: "<< myFileErrorList.size()<<endl;
+
+    FileStorage fs2(nameOutErrorList.c_str(), FileStorage::WRITE);
+    fs2 << "fileErrorList" <<  myFileErrorList;
+    fs2.release();
+
     delete bgs;
 
     //    capture.release();