diff --git a/modules/gui/src/file_loader.cc b/modules/gui/src/file_loader.cc
index 31636340e150d1ed3c06284165bc2255789aeeb4..f8e611f9f3bf29293aabae09e2fa554d379d2645 100644
--- a/modules/gui/src/file_loader.cc
+++ b/modules/gui/src/file_loader.cc
@@ -135,21 +135,26 @@ void FileLoader::AddToScene(const QString& filename, gfx::GfxObjP obj)
 gfx::GfxObjP FileLoader::NoHandlerFound(const QString& filename)
 {
   FileTypeDialog dialog(filename);
-  if(dialog.exec()){
-    if(dialog.GetEntityHandler()){
-      return TryLoadEntity(filename, dialog.GetEntityHandler());
-    }
-    if(dialog.GetSequenceHandler()){
-      return TryLoadAlignment(filename, dialog.GetSequenceHandler());
-    }
-    if(dialog.GetSurfaceHandler()){
-      return TryLoadSurface(filename,dialog.GetSurfaceHandler());
-    }
-#if OST_IMG_ENABLED
-    if(dialog.GetMapHandler()){
-      return TryLoadMap(filename,dialog.GetMapHandler());
+  try{
+    if(dialog.exec()){
+      if(dialog.GetEntityHandler()){
+        return TryLoadEntity(filename, dialog.GetEntityHandler());
+      }
+      if(dialog.GetSequenceHandler()){
+        return TryLoadAlignment(filename, dialog.GetSequenceHandler());
+      }
+      if(dialog.GetSurfaceHandler()){
+        return TryLoadSurface(filename,dialog.GetSurfaceHandler());
+      }
+  #if OST_IMG_ENABLED
+      if(dialog.GetMapHandler()){
+        return TryLoadMap(filename,dialog.GetMapHandler());
+      }
+  #endif
     }
-#endif
+  }
+  catch (io::IOException& e) {
+    FileLoader::HandleError(e,IO_LOADING,filename);
   }
   return gfx::GfxObjP();
 }