diff --git a/src/TNL/Problems/HeatEquationProblem_impl.h b/src/TNL/Problems/HeatEquationProblem_impl.h
index a25a7d8f4d3330db502faf5e3db68a700fd63162..e4fec6154f4877fa056bd0c24342e47f55526ef8 100644
--- a/src/TNL/Problems/HeatEquationProblem_impl.h
+++ b/src/TNL/Problems/HeatEquationProblem_impl.h
@@ -149,6 +149,7 @@ setInitialCondition( const Config::ParameterContainer& parameters,
    if(CommunicatorType::isDistributed())
     {
         Meshes::DistributedMeshes::DistributedGridIO<MeshFunctionType,Meshes::DistributedMeshes::MpiIO> ::load(initialConditionFile, *uPointer );
+        uPointer->template Synchronize<CommunicatorType>();
     }
     else
     {
@@ -253,6 +254,7 @@ getExplicitUpdate( const RealType& time,
    this->explicitUpdater.setBoundaryConditions( this->boundaryConditionPointer ),
    this->explicitUpdater.setRightHandSide( this->rightHandSidePointer ),
    this->explicitUpdater.template update< typename Mesh::Cell, CommType >( time, tau, meshPointer, this->uPointer, fuPointer );
+
 }
 
 template< typename Mesh,
diff --git a/src/TNL/Solvers/PDE/ExplicitUpdater.h b/src/TNL/Solvers/PDE/ExplicitUpdater.h
index 0baf5e6de8bcfa99c68a5d5e3d0b79ae0abc3918..21608dc84e406cc1e54c8a6d3b0ad5cd97374eb6 100644
--- a/src/TNL/Solvers/PDE/ExplicitUpdater.h
+++ b/src/TNL/Solvers/PDE/ExplicitUpdater.h
@@ -150,7 +150,7 @@ class ExplicitUpdater
                                              userDataPointer );
 
          if(CommunicatorType::isDistributed())
-            uPointer->template Synchronize<CommunicatorType>();
+            fuPointer->template Synchronize<CommunicatorType>();
 
       }