diff --git a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncLeastSquares.h b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncLeastSquares.h
index 730063e7e756f9bdbf65502323ed765cb8f52db8..5909b3553ab5917e4eb3bace70668a973a527a1b 100644
--- a/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncLeastSquares.h
+++ b/Code/Mantid/Framework/CurveFitting/inc/MantidCurveFitting/CostFuncLeastSquares.h
@@ -10,6 +10,10 @@
 
 namespace Mantid
 {
+namespace Kernel
+{
+  class Logger;
+}
 namespace CurveFitting
 {
   class SeqDomain;
@@ -44,7 +48,7 @@ class DLLExport CostFuncLeastSquares : public CostFuncFitting
 {
 public:
   /// Constructor
-  CostFuncLeastSquares():CostFuncFitting(),m_value(0),m_pushed(false){}
+  CostFuncLeastSquares();
   /// Virtual destructor
   virtual ~CostFuncLeastSquares() {}
 
@@ -103,6 +107,7 @@ private:
   friend class SeqDomain;
   friend class ParDomain;
 
+  Kernel::Logger & m_log;
 };
 
 } // namespace CurveFitting
diff --git a/Code/Mantid/Framework/CurveFitting/src/CostFuncLeastSquares.cpp b/Code/Mantid/Framework/CurveFitting/src/CostFuncLeastSquares.cpp
index 64b56b6792307a098cd575a53c1f33fc7cd802b6..d746a2ce1513a9730f7d476bd489d49e4072d637 100644
--- a/Code/Mantid/Framework/CurveFitting/src/CostFuncLeastSquares.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/CostFuncLeastSquares.cpp
@@ -8,6 +8,8 @@
 #include "MantidAPI/CompositeDomain.h"
 #include "MantidAPI/FunctionValues.h"
 
+#include <iomanip>
+
 namespace
 {
   const bool debug = false;
@@ -20,6 +22,12 @@ namespace CurveFitting
 
 DECLARE_COSTFUNCTION(CostFuncLeastSquares,Least squares)
 
+/**
+ * Constructor
+ */
+CostFuncLeastSquares::CostFuncLeastSquares() : CostFuncFitting(),m_value(0),m_pushed(false),
+  m_log(Kernel::Logger::get("CostFuncLeastSquares")) {}
+
 /** Calculate value of cost function
  * @return :: The value of the function
  */
@@ -452,8 +460,41 @@ void CostFuncLeastSquares::calActiveCovarianceMatrix(GSLMatrix& covar, double ep
   {
     valDerivHessian();
   }
+  if(m_log.is(Kernel::Logger::Priority::PRIO_INFORMATION))
+  {
+    m_log.information() << "== Hessian (H) ==\n";
+    std::ios::fmtflags prevState = m_log.information().flags();
+    m_log.information() << std::left << std::fixed;
+    for(size_t i = 0; i < m_hessian.size1(); ++i)
+    {
+      for(size_t j = 0; j < m_hessian.size2(); ++j)
+      {
+        m_log.information() << std::setw(10);
+        m_log.information() << m_hessian.get(i,j) << "  ";
+      }
+      m_log.information() << "\n";
+    }
+    m_log.information().flags(prevState);
+  }
   covar = m_hessian;
   covar.invert();
+  if(m_log.is(Kernel::Logger::Priority::PRIO_INFORMATION))
+  {
+    m_log.information() << "== Covariance matrix (H^-1) ==\n";
+    std::ios::fmtflags prevState = m_log.information().flags();
+    m_log.information() << std::left << std::fixed;
+    for(size_t i = 0; i < covar.size1(); ++i)
+    {
+      for(size_t j = 0; j < covar.size2(); ++j)
+      {
+        m_log.information() << std::setw(10);
+        m_log.information() << covar.get(i,j) << "  ";
+      }
+      m_log.information() << "\n";
+    }
+    m_log.information().flags(prevState);
+  }
+
 }
 
 } // namespace CurveFitting
diff --git a/Code/Mantid/Framework/CurveFitting/src/Fit.cpp b/Code/Mantid/Framework/CurveFitting/src/Fit.cpp
index 68e617c8b8b37db831d83344c9cd6f6ab20fad7f..d89d55335e527afa9f9dc5349310c09c9444ccd6 100644
--- a/Code/Mantid/Framework/CurveFitting/src/Fit.cpp
+++ b/Code/Mantid/Framework/CurveFitting/src/Fit.cpp
@@ -611,8 +611,6 @@ namespace CurveFitting
     size_t iter = 0;
     bool success = false;
     std::string errorString;
-    //double costFuncVal = 0;
-    //do
     g_log.debug("Starting minimizer iteration\n");
     while (static_cast<int>(iter) < maxIterations)
     {
@@ -633,6 +631,10 @@ namespace CurveFitting
       }
       prog.report();
       m_function->iterationFinished();
+      if(g_log.is(Kernel::Logger::Priority::PRIO_INFORMATION))
+      {
+        g_log.information() << "Iteration " << iter << ", cost function = " << minimizer->costFunctionVal() << "\n";
+      }
     }
     g_log.information() << "Number of minimizer iterations=" << iter << "\n";