diff --git a/parser/parser-cp2k/cp2kparser/versions/cp2k262/commonmatcher.py b/parser/parser-cp2k/cp2kparser/versions/cp2k262/commonmatcher.py
index 17ef33ffea0638e57a4f8acd667fb61dcca3cc57..e2e2b145768f5967517fc093fd1ed2b2bb318a85 100644
--- a/parser/parser-cp2k/cp2kparser/versions/cp2k262/commonmatcher.py
+++ b/parser/parser-cp2k/cp2kparser/versions/cp2k262/commonmatcher.py
@@ -47,7 +47,7 @@ class CommonMatcher(object):
 
         #=======================================================================
         # Globally cached values
-        self.cache_service.add("simulation_cell", single=False, update=True)
+        self.cache_service.add("simulation_cell", single=False, update=False)
         self.cache_service.add("number_of_scf_iterations", 0)
         self.cache_service.add("atom_positions", single=False, update=True)
         self.cache_service.add("atom_labels", single=False, update=False)
@@ -313,6 +313,12 @@ class CommonMatcher(object):
         if number_of_atoms is not None:
             self.cache_service["number_of_atoms"] = number_of_atoms
 
+    # def onClose_x_cp2k_section_quickstep_calculation(self, backend, gIndex, section):
+        # print "quickstep CLOSED"
+
+    # def onClose_x_cp2k_section_geometry_optimization_step(self, backend, gIndex, section):
+        # print "Optimisation step CLOSED"
+
     def onClose_section_method(self, backend, gIndex, section):
         """When all the functional definitions have been gathered, matches them
         with the nomad correspondents and combines into one single string which
@@ -591,10 +597,10 @@ class CommonMatcher(object):
             self.test_electronic_structure_method = "RPA"
         return wrapper
 
-    def debug(self):
-        def wrapper(parser):
-            print("FOUND")
-        return wrapper
+    # def debug(self):
+        # def wrapper(parser):
+            # print("FOUND")
+        # return wrapper
 
     #===========================================================================
     # MISC functions
diff --git a/parser/parser-cp2k/cp2kparser/versions/cp2k262/geooptparser.py b/parser/parser-cp2k/cp2kparser/versions/cp2k262/geooptparser.py
index 49c3a7c298db7391324a8feed52489b8b3c7e229..f1a9c007bd36da9a411bb8d1d8b93e0eeb13fab9 100644
--- a/parser/parser-cp2k/cp2kparser/versions/cp2k262/geooptparser.py
+++ b/parser/parser-cp2k/cp2kparser/versions/cp2k262/geooptparser.py
@@ -19,6 +19,7 @@ class CP2KGeoOptParser(MainHierarchicalParser):
         super(CP2KGeoOptParser, self).__init__(file_path, parser_context)
         self.setup_common_matcher(CommonMatcher(parser_context))
         self.traj_iterator = None
+        self.energy_reeval_quickstep = None
 
         #=======================================================================
         # Globally cached values
@@ -30,11 +31,10 @@ class CP2KGeoOptParser(MainHierarchicalParser):
         #=======================================================================
         # Cache levels
         self.caching_level_for_metaname.update({
-            'x_cp2k_optimization_energy': CachingLevel.ForwardAndCache,
             'x_cp2k_section_geometry_optimization_step': CachingLevel.ForwardAndCache,
             'x_cp2k_section_quickstep_calculation': CachingLevel.ForwardAndCache,
             'x_cp2k_section_geometry_optimization': CachingLevel.ForwardAndCache,
-            'x_cp2k_section_geometry_optimization_energy_reevaluation': CachingLevel.ForwardAndCache,
+            # 'x_cp2k_section_geometry_optimization_energy_reevaluation': CachingLevel.ForwardAndCache,
         })
 
         #=======================================================================
@@ -73,7 +73,6 @@ class CP2KGeoOptParser(MainHierarchicalParser):
                     endReStr="  Conv. in RMS gradients     =",
                     name="geooptstep",
                     repeats=True,
-                    # sections=["section_single_configuration_calculation", "section_system"],
                     subMatchers=[
                         SM( "",
                             forwardMatch=True,
@@ -140,12 +139,19 @@ class CP2KGeoOptParser(MainHierarchicalParser):
                     otherMetaInfo=["geometry_optimization_converged"]
                 ),
                 SM( "                    Reevaluating energy at the minimum",
-                    sections=["x_cp2k_section_geometry_optimization_energy_reevaluation"],
+                    # sections=["x_cp2k_section_geometry_optimization_energy_reevaluation"],
                     subMatchers=[
                         self.cm.quickstep_calculation(),
+                        # SM("",
+                            # adHoc=self.adHoc_save_energy_reeval_quickstep()
+                        # )
                     ],
-                    # adHoc=self.adHoc_step()
+                    # adHoc=self.adHoc_save_energy_reeval_quickstep()
                 ),
+                # SM( "",
+                    # forwardMatch=True,
+                    # adHoc=self.adHoc_save_energy_reeval_quickstep()
+                # )
             ],
         )
 
@@ -173,13 +179,11 @@ class CP2KGeoOptParser(MainHierarchicalParser):
     def onClose_x_cp2k_section_geometry_optimization(self, backend, gIndex, section):
 
         # Get the re-evaluated energy and add it to frame_sequence_potential_energy
-        energy = section.get_latest_value([
-            "x_cp2k_section_geometry_optimization_energy_reevaluation",
-            "x_cp2k_section_quickstep_calculation",
-            "x_cp2k_energy_total"]
-        )
-        if energy is not None:
-            self.cache_service["frame_sequence_potential_energy"].append(energy)
+        reeval_quickstep = self.energy_reeval_quickstep
+        if reeval_quickstep is not None:
+            energy = reeval_quickstep.get_latest_value("x_cp2k_energy_total")
+            if energy is not None:
+                self.cache_service["frame_sequence_potential_energy"].append(energy)
 
         # Push values from cache
         self.cache_service.push_array_values("frame_sequence_potential_energy")
@@ -231,6 +235,9 @@ class CP2KGeoOptParser(MainHierarchicalParser):
     def onClose_section_sampling_method(self, backend, gIndex, section):
         self.backend.addValue("sampling_method", "geometry_optimization")
 
+    def onClose_x_cp2k_section_quickstep_calculation(self, backend, gIndex, section):
+        self.energy_reeval_quickstep = section
+
     def onClose_x_cp2k_section_geometry_optimization_step(self, backend, gIndex, section):
         energy = section["x_cp2k_optimization_energy"]
         if energy is not None:
@@ -283,11 +290,18 @@ class CP2KGeoOptParser(MainHierarchicalParser):
             self.cache_service["geometry_optimization_method"] = "bfgs"
         return wrapper
 
-    # def adHoc_step(self):
-        # """Called when all the step information has been retrieved from the
-        # output file. Here further information is gathered from external files.
-        # """
+    # def adHoc_save_energy_reeval_quickstep(self):
         # def wrapper(parser):
-            # self.cache_service["number_of_frames_in_sequence"] += 1
-
+            # section_managers = parser.backend.sectionManagers
+            # section_run_manager = section_managers["section_run"]
+            # section_run = section_run_manager.openSections[0]
+            # print section_run.subSectionValues
+            # # quickstep = section_run.get_latest_value("x_cp2k_section_quickstep_calculation")
+            # # print quickstep
+            # # self.energy_reeval_quickstep = quickstep
         # return wrapper
+
+    def debug(self):
+        def wrapper(parser):
+            print "DEBUG"
+        return wrapper
diff --git a/parser/parser-cp2k/cp2kparser/versions/cp2k262/mdparser.py b/parser/parser-cp2k/cp2kparser/versions/cp2k262/mdparser.py
index 049912584df585a5957dca293b32d87b03de2d38..cca527c2ce983e8da71ab8befeaae1545ee99ee4 100644
--- a/parser/parser-cp2k/cp2kparser/versions/cp2k262/mdparser.py
+++ b/parser/parser-cp2k/cp2kparser/versions/cp2k262/mdparser.py
@@ -31,6 +31,7 @@ class CP2KMDParser(MainHierarchicalParser):
         self.velo_freq = None
         self.energy_freq = None
         self.cell_freq = None
+        self.md_quicksteps = []
 
         #=======================================================================
         # Globally cached values
@@ -88,10 +89,12 @@ class CP2KMDParser(MainHierarchicalParser):
                         SM( " INITIAL CELL LNTHS\[bohr\]              =\s+(?P<x_cp2k_md_cell_length_a_instantaneous__bohr>{0})\s+(?P<x_cp2k_md_cell_length_b_instantaneous__bohr>{0})\s+(?P<x_cp2k_md_cell_length_c_instantaneous__bohr>{0})".format(self.cm.regex_f)),
                         SM( " INITIAL CELL ANGLS\[deg\]               =\s+(?P<x_cp2k_md_cell_angle_a_instantaneous__deg>{0})\s+(?P<x_cp2k_md_cell_angle_b_instantaneous__deg>{0})\s+(?P<x_cp2k_md_cell_angle_c_instantaneous__deg>{0})".format(self.cm.regex_f)),
                     ],
+                    adHoc=self.adHoc_save_md_quickstep()
                 ),
                 SM( " SCF WAVEFUNCTION OPTIMIZATION",
                     endReStr=" TEMPERATURE \[K\]              =",
                     name="md_step",
+                    forwardMatch=True,
                     repeats=True,
                     sections=["x_cp2k_section_md_step"],
                     subMatchers=[
@@ -113,6 +116,7 @@ class CP2KMDParser(MainHierarchicalParser):
                         SM( " CELL ANGLS\[deg\]              =\s+(?P<x_cp2k_md_cell_angle_a_instantaneous__deg>{0})\s+(?P<x_cp2k_md_cell_angle_b_instantaneous__deg>{0})\s+(?P<x_cp2k_md_cell_angle_c_instantaneous__deg>{0})".format(self.cm.regex_f)),
                         SM( " AVE. CELL ANGLS\[deg\]         =\s+(?P<x_cp2k_md_cell_angle_a_average__deg>{0})\s+(?P<x_cp2k_md_cell_angle_b_average__deg>{0})\s+(?P<x_cp2k_md_cell_angle_c_average__deg>{0})".format(self.cm.regex_f)),
                     ],
+                    adHoc=self.adHoc_save_md_quickstep()
                 ),
             ]
         )
@@ -321,7 +325,7 @@ class CP2KMDParser(MainHierarchicalParser):
             if md_steps:
                 if (i_step + 1) % freqs["output"][0] == 0:
                     md_step = md_steps[i_md_step]
-                    quickstep = md_step.get_latest_value("x_cp2k_section_quickstep_calculation")
+                    quickstep = self.md_quicksteps[i_md_step]
                     if quickstep is not None:
                         quickstep.add_latest_value("x_cp2k_atom_forces", "atom_forces")
                         quickstep.add_latest_value("x_cp2k_stress_tensor", "stress_tensor")
@@ -388,3 +392,14 @@ class CP2KMDParser(MainHierarchicalParser):
             mean_pressure = frame_sequence_pressure.mean()
             std_pressure = frame_sequence_pressure.std()
             backend.addArrayValues("frame_sequence_pressure_stats", np.array([mean_pressure, std_pressure]))
+
+    #===========================================================================
+    # adHoc functions
+    def adHoc_save_md_quickstep(self):
+        def wrapper(parser):
+            section_managers = parser.backend.sectionManagers
+            section_run_manager = section_managers["section_run"]
+            section_run = section_run_manager.openSections[0]
+            quickstep = section_run.get_latest_value("x_cp2k_section_quickstep_calculation")
+            self.md_quicksteps.append(quickstep)
+        return wrapper
diff --git a/test/unittests/cp2k_2.6.2/run_tests.py b/test/unittests/cp2k_2.6.2/run_tests.py
index e55d6e22dcb68b9bda7565481285bfebf693d978..f7850e378e714324ba14c0321a7173d7d9ac4a8c 100644
--- a/test/unittests/cp2k_2.6.2/run_tests.py
+++ b/test/unittests/cp2k_2.6.2/run_tests.py
@@ -1022,14 +1022,14 @@ if __name__ == '__main__':
     logger.setLevel(logging.ERROR)
 
     suites = []
-    # suites.append(unittest.TestLoader().loadTestsFromTestCase(TestErrors))
-    # suites.append(unittest.TestLoader().loadTestsFromTestCase(TestXCFunctional))
-    # suites.append(unittest.TestLoader().loadTestsFromTestCase(TestEnergyForce))
-    # suites.append(unittest.TestLoader().loadTestsFromTestCase(TestStressTensorMethods))
-    # suites.append(unittest.TestLoader().loadTestsFromTestCase(TestSelfInteractionCorrectionMethod))
-    # suites.append(unittest.TestLoader().loadTestsFromTestCase(TestConfigurationPeriodicDimensions))
-    # suites.append(unittest.TestLoader().loadTestsFromTestCase(TestSCFConvergence))
-    # suites.append(unittest.TestLoader().loadTestsFromTestCase(TestForceFiles))
+    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestErrors))
+    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestXCFunctional))
+    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestEnergyForce))
+    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestStressTensorMethods))
+    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestSelfInteractionCorrectionMethod))
+    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestConfigurationPeriodicDimensions))
+    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestSCFConvergence))
+    suites.append(unittest.TestLoader().loadTestsFromTestCase(TestForceFiles))
     suites.append(unittest.TestLoader().loadTestsFromTestCase(TestPreprocessor))
     suites.append(unittest.TestLoader().loadTestsFromTestCase(TestGeoOpt))
     suites.append(unittest.TestLoader().loadTestsFromTestCase(TestGeoOptTrajFormats))