diff --git a/AMDiS/src/SolutionDataStorage.h b/AMDiS/src/SolutionDataStorage.h
index 8d64cc98c4b5a2e7718b888985fad8ebda269d51..15319ac1a13c54f635284ea8d809cc43d3a808fb 100644
--- a/AMDiS/src/SolutionDataStorage.h
+++ b/AMDiS/src/SolutionDataStorage.h
@@ -88,6 +88,22 @@ namespace AMDiS {
       feSpaces.empty();
     }
 
+    int addMemoryUsage(FiniteElemSpace* feSpace) {
+      memoryUsage += feSpace->getMesh()->calcMemoryUsage();
+    }
+
+    int addMemoryUsage(std::vector<FiniteElemSpace*> feSpaces) {
+      // Is used to determine equal meshes for different components.
+      std::vector<Mesh*> meshes;
+
+      for (int i = 0; i < static_cast<int>(feSpaces.size()); i++) {
+	if (find(meshes.begin(), meshes.end(), feSpaces[i]->getMesh()) != meshes.end()) {
+	  memoryUsage += feSpaces[i]->getMesh()->calcMemoryUsage();
+	  meshes.push_back(feSpaces[i]->getMesh());
+	}
+      }
+    }
+
     /** \brief
      * Deletes all pointers and empties all internal vectors.
      */
diff --git a/AMDiS/src/SolutionDataStorage.hh b/AMDiS/src/SolutionDataStorage.hh
index a725e2bfab416d87b013b2426cd6d2c8e10e63ca..62e810f1481433b37f4682dd24c08b662a70e9a7 100644
--- a/AMDiS/src/SolutionDataStorage.hh
+++ b/AMDiS/src/SolutionDataStorage.hh
@@ -36,8 +36,7 @@ namespace AMDiS {
     fixedFESpace = true;
     feSpaces.push_back(feSpace);
 
-    std::cout << "MESH = " << static_cast<double>(feSpace[0]->getMesh()->calcMemoryUsage()) / (1024.0 * 1024.0) << std::endl;
-    WAIT_REALLY;
+    addMemoryUsage(feSpace);
   }
 
   template<typename T>