diff --git a/appl/conjugateheattransfer/iterative/main_freeflow.cc b/appl/conjugateheattransfer/iterative/main_freeflow.cc
index eac59a82109317352d631f3fc52ed215e9895a81..95e94ce2d3988a0a4144ea43ca14eccc31f969ae 100644
--- a/appl/conjugateheattransfer/iterative/main_freeflow.cc
+++ b/appl/conjugateheattransfer/iterative/main_freeflow.cc
@@ -266,8 +266,6 @@ int main(int argc, char** argv) try
     //Checkpointing variable for preCICE
     auto sol_checkpoint = sol;
 
-    double fakeTime = 0.;
-
     // time loop
     timeLoop->start();
     //do
@@ -289,11 +287,6 @@ int main(int argc, char** argv) try
         // solve the non-linear system with time step control
         nonLinearSolver.solve(sol, *timeLoop);
 
-        // make the new solution the old solution
-        //TODO DO WE HAVE TO MOVE THAT?
-        //solOld = sol;
-        freeFlowGridVariables->advanceTimeStep();
-
         // Write heatflux to wrapper
         setBoundaryHeatFluxes( *freeFlowProblem, *freeFlowGridVariables, sol );
         //Tell wrapper that all values have been written
@@ -308,16 +301,10 @@ int main(int argc, char** argv) try
         if ( couplingInterface.hasToReadIterationCheckpoint() )
         {
             //Read checkpoint
-            //printCellCenterTemperatures( *freeFlowProblem, *freeFlowGridVariables, sol );
             sol = sol_checkpoint;
-            //freeFlowGridVariables->advanceTimeStep();
             freeFlowGridVariables->update(sol);
-            //printCellCenterTemperatures( *freeFlowProblem, *freeFlowGridVariables, sol );
-
-//            freeFlowVtkWriter.write(timeLoop->time() + fakeTime);
-//            fakeTime += 1.0;
-//            std::cout << "Press key to continue! " << std::endl;
-//            getchar();
+            freeFlowGridVariables->advanceTimeStep();
+            //freeFlowGridVariables->init(sol);
             couplingInterface.announceIterationCheckpointRead();
         }
         else // coupling successful
@@ -339,6 +326,7 @@ int main(int argc, char** argv) try
     //while (!timeLoop->finished() && couplingInterface.isCouplingOngoing());
 
     timeLoop->finalize(freeFlowGridView.comm());
+    couplingInterface.finalize();
 
     ////////////////////////////////////////////////////////////
     // finalize, print dumux message to say goodbye
@@ -351,8 +339,6 @@ int main(int argc, char** argv) try
         DumuxMessage::print(/*firstCall=*/false);
     }
 
-    couplingInterface.finalize();
-
     return 0;
 } // end main
 catch (Dumux::ParameterException &e)
diff --git a/appl/conjugateheattransfer/iterative/main_solidenergy.cc b/appl/conjugateheattransfer/iterative/main_solidenergy.cc
index 1f7b28ac890bec55d3c40272e2b7eaaa98a5574b..2c1752d64af671a58dd697c13fda898b9f31b01a 100644
--- a/appl/conjugateheattransfer/iterative/main_solidenergy.cc
+++ b/appl/conjugateheattransfer/iterative/main_solidenergy.cc
@@ -290,8 +290,9 @@ int main(int argc, char** argv) try
         {
             //Read checkpoint
             sol = sol_checkpoint;
-            //solidEnergyGridVariables->advanceTimeStep();
             solidEnergyGridVariables->update(sol);
+            solidEnergyGridVariables->advanceTimeStep();
+            //solidEnergyGridVariables->init(sol);
             couplingInterface.announceIterationCheckpointRead();
         }
         else // coupling successful
diff --git a/appl/conjugateheattransfer/iterative/precice-config-serial-implicit.xml b/appl/conjugateheattransfer/iterative/precice-config-serial-implicit.xml
index b8cdbf9405bef835d7f5807f4f23863852339f50..c1b12d80c7725191ad9d3f051f087cf1f0c50d98 100644
--- a/appl/conjugateheattransfer/iterative/precice-config-serial-implicit.xml
+++ b/appl/conjugateheattransfer/iterative/precice-config-serial-implicit.xml
@@ -58,7 +58,7 @@
     <coupling-scheme:serial-implicit>
       <max-time value="100"/>
       <timestep-length value="1" />
-      <max-iterations value="120"/>
+      <max-iterations value="100"/>
 
 
       <participants first="FreeFlow" second="SolidEnergy"/>
@@ -74,21 +74,21 @@
       <relative-convergence-measure limit="1.0e-6" data="Temperature" mesh="FreeFlowMesh"/>
       -->
        
-      <relative-convergence-measure limit="1.0e-5" data="Heat-Flux" mesh="SolidEnergyMesh"/>
-      <relative-convergence-measure limit="1.0e-5" data="Temperature" mesh="SolidEnergyMesh"/>
+      <relative-convergence-measure limit="1.0e-8" data="Heat-Flux" mesh="SolidEnergyMesh"/>
+      <relative-convergence-measure limit="1.0e-8" data="Temperature" mesh="SolidEnergyMesh"/>
 
              
        <!--
        <relative-convergence-measure limit="1.0e-2" data="Temperature" mesh="FreeFlowMesh"/>
        -->
        
-        <extrapolation-order value="0"/>
+        <extrapolation-order value="2"/>
 
         <post-processing:IQN-ILS>
             <data mesh="SolidEnergyMesh" name="Temperature" />
             <initial-relaxation value="0.1" />
             <max-used-iterations value="9" />
-            <timesteps-reused value="20" />
+            <timesteps-reused value="10" />
             <filter type="QR2" limit="1e-3" />
         </post-processing:IQN-ILS>