diff --git a/Code/Mantid/Framework/API/src/FileLoaderRegistry.cpp b/Code/Mantid/Framework/API/src/FileLoaderRegistry.cpp
index 6d90dd86ad60b8dd6061131b546400edddd08787..14e8305514288d94ce0638009494bc8735951332 100644
--- a/Code/Mantid/Framework/API/src/FileLoaderRegistry.cpp
+++ b/Code/Mantid/Framework/API/src/FileLoaderRegistry.cpp
@@ -53,8 +53,6 @@ namespace Mantid
           try
           {
             const int confidence = alg->confidence(descriptor);
-            callback.apply(descriptor);
-
             if(confidence > maxConfidence) // strictly greater
             {
               bestLoader = name;
@@ -65,6 +63,7 @@ namespace Mantid
           {
             logger.warning() << "Checking loader '" << name << "' raised an error: '" << exc.what() << "'. Loader skipped." << std::endl;
           }
+          callback.apply(descriptor);
         }
         return bestLoader;
       }