diff --git a/Code/Mantid/Framework/DataHandling/src/LoadRawHelper.cpp b/Code/Mantid/Framework/DataHandling/src/LoadRawHelper.cpp
index 07a5ed4cdd2d0ce1fe960f936e76cdb440d98035..b07545d3d2cc4c32b70255e8fa2e3a37feee7736 100644
--- a/Code/Mantid/Framework/DataHandling/src/LoadRawHelper.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/LoadRawHelper.cpp
@@ -538,6 +538,10 @@ namespace Mantid
       if (i != std::string::npos) instrumentID.erase(i);
 
       IAlgorithm_sptr loadInst= createSubAlgorithm("LoadInstrument");
+      // Enable progress reporting by sub-algorithm - 
+      loadInst->addObserver(m_progressObserver);
+      setChildStartProgress(0.0);
+      setChildEndProgress(0.25);
       // Now execute the sub-algorithm. Catch and log any error, but don't stop.
       bool executionSuccessful(true);
       try
@@ -577,6 +581,9 @@ namespace Mantid
             IAlgorithm_sptr updateInst = createSubAlgorithm("UpdateInstrumentFromFile");
             updateInst->setProperty<MatrixWorkspace_sptr>("Workspace", localWorkspace);
             updateInst->setPropertyValue("Filename", fileName);
+            updateInst->addObserver(m_progressObserver); // Enable progress reporting bu subalgorithm
+            setChildStartProgress(0.25);
+            setChildEndProgress(0.50);
             if(value  == "datafile-ignore-phi" )
             {
               updateInst->setProperty("IgnorePhi", true);
diff --git a/Code/Mantid/Framework/DataHandling/src/UpdateInstrumentFromFile.cpp b/Code/Mantid/Framework/DataHandling/src/UpdateInstrumentFromFile.cpp
index 8e14626b2c4e9adc2a0ea16be42c5e658ffae483..63359838a05110eb4b1581473c439746fe40f66f 100644
--- a/Code/Mantid/Framework/DataHandling/src/UpdateInstrumentFromFile.cpp
+++ b/Code/Mantid/Framework/DataHandling/src/UpdateInstrumentFromFile.cpp
@@ -225,7 +225,7 @@ namespace Mantid
           catch (Kernel::Exception::NotFoundError&)
           {
           }
-          progress(static_cast<double>(i)/numDetector);
+          progress(static_cast<double>(i)/numDetector,"Updating Detector Positions from File");
         }  
 
       }
diff --git a/Code/Mantid/Framework/Geometry/src/Instrument/InstrumentDefinitionParser.cpp b/Code/Mantid/Framework/Geometry/src/Instrument/InstrumentDefinitionParser.cpp
index a382069666e5992584763f0f596dc1a3a783f4f8..adea341f2d62dab0ec7a6169bfc5deecaa9fa118 100644
--- a/Code/Mantid/Framework/Geometry/src/Instrument/InstrumentDefinitionParser.cpp
+++ b/Code/Mantid/Framework/Geometry/src/Instrument/InstrumentDefinitionParser.cpp
@@ -280,7 +280,7 @@ namespace Geometry
     if (prog) prog->resetNumSteps(pNL_comp_length, 0.0, 1.0);
     for (unsigned long i = 0; i < pNL_comp_length; i++)
     {
-      if(prog) prog->report();
+      if(prog) prog->report("Loading instrument Definition");
       // we are only interest in the top level component elements hence
       // the reason for the if statement below