diff --git a/src/problem/Formulation.cpp b/src/problem/Formulation.cpp
index 6a7c015aa993a3fc61b1908c8e7d2716e8a287d7..4a9cbe0263a56586502477330760acfeb7010dd6 100644
--- a/src/problem/Formulation.cpp
+++ b/src/problem/Formulation.cpp
@@ -800,17 +800,22 @@ namespace gmshddm
 
 
       if(mustAssemble) {
-        s_printResources("DDM pre-processing before volume assembly");
 
         assemble();
-      }
+        time.tock();
+        if(MPI_Rank == 0) {
+          gmshfem::msg::info << "Done pre-processing and assembling in " << time << "s" << gmshfem::msg::endl;
+        }
 
-      time.tock();
-      if(MPI_Rank == 0) {
-        gmshfem::msg::info << "Done pre-processing in " << time << "s" << gmshfem::msg::endl;
+        return time;
+      }
+      else {
+        time.tock();
+        if(MPI_Rank == 0) {
+          gmshfem::msg::info << "Done pre-processing (no assembly) in " << time << "s" << gmshfem::msg::endl;
+        }
+        return time;
       }
-
-      return time;
     }
 
 
@@ -820,6 +825,7 @@ namespace gmshddm
       gmshfem::common::Timer time;
       time.tick();
 
+
       const int outerVerbosity = gmshfem::common::Options::instance()->verbose;
       const int innerVerbosity = (outerVerbosity != 0 ? outerVerbosity - 1 : 0);
   
@@ -847,6 +853,7 @@ namespace gmshddm
       }
 
       // Assemble locally on each processor
+      s_printResources("DDM pre-processing before volume assembly");
       _assembleAllVolume();
 
       MPI_Barrier(PETSC_COMM_WORLD);