diff --git a/Core/Fitting/FitSuite.cpp b/Core/Fitting/FitSuite.cpp
index 63df8faafdb45d12492d90b37837c887b405a87a..0c225d88b27781c90ac38fe36556e175422803a5 100644
--- a/Core/Fitting/FitSuite.cpp
+++ b/Core/Fitting/FitSuite.cpp
@@ -156,6 +156,12 @@ FitSuiteStrategies* FitSuite::fitStrategies()
     return m_impl->fitStrategies();
 }
 
+bool FitSuite::isFirstIteration() const
+{
+    // FIXME temporary method: before refactoring first iteration had index 0
+    return m_impl->numberOfIterations() == 1;
+}
+
 bool FitSuite::isLastIteration() const
 {
     return m_impl->isLastIteration();
diff --git a/Core/Fitting/FitSuite.h b/Core/Fitting/FitSuite.h
index a914fdcf2653522c6f5785e5e4b7806d7109091c..c2661c52fbcc9a4efda0caf3be5386e1c7725d66 100644
--- a/Core/Fitting/FitSuite.h
+++ b/Core/Fitting/FitSuite.h
@@ -127,6 +127,9 @@ public:
     //! Returns reference to fit parameters
     FitSuiteStrategies* fitStrategies();
 
+    //! temporary method to check if it is first iteration
+    bool isFirstIteration() const;
+
     //! if the last iteration is done (used by observers to print summary)
     bool isLastIteration() const;
 
diff --git a/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp b/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp
index fd4588837b8adf600ea8a0620bcedde87fdc3d84..4827d3458023ebbab577a41c7976e16978a7f8aa 100644
--- a/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp
+++ b/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp
@@ -18,7 +18,6 @@
 #include "FitSuite.h"
 #include "GUIHelpers.h"
 #include "MinimizerUtils.h"
-#include <QDebug>
 
 GUIFitObserver::GUIFitObserver(QObject* parent)
     : QObject(parent)
@@ -44,6 +43,9 @@ void GUIFitObserver::update(FitSuite* subject)
     if (m_block_update_plots)
         m_on_finish_notifier.wait(lock, [this]() { return m_block_update_plots; });
 
+    if (subject->isFirstIteration())
+        emit logInfoUpdate(QString::fromStdString(subject->setupToString()));
+
     FitProgressInfo info;
     info.m_chi2 = subject->getChi2();
     info.m_iteration_count = (int)subject->numberOfIterations();
@@ -51,11 +53,12 @@ void GUIFitObserver::update(FitSuite* subject)
 
     emit progressInfoUpdate(info);
 
+    if (subject->isLastIteration())
+        emit logInfoUpdate(reportToString(subject));
+
     m_simData.reset(subject->simulationResult().data());
     emit plotsUpdate();
 
-    if (subject->isLastIteration())
-        emit logInfoUpdate(reportToString(subject));
 }
 
 //! Returns true if data could be plotted, when there are resources for it.
@@ -66,7 +69,9 @@ bool GUIFitObserver::is_suitable_iteration(FitSuite* fitSuite)
         return false;
 
     int n_iter = static_cast<int>(fitSuite->numberOfIterations());
-    return n_iter == 0 || n_iter % m_update_interval == 0 || n_iter == fitSuite->isLastIteration();
+    return n_iter == fitSuite->isFirstIteration() ||
+           n_iter % m_update_interval == 0 ||
+           fitSuite->isLastIteration();
 }
 
 //! Returns true if given iteration should be obligary plotted.