diff --git a/jastadd-mquat-solver-ilp/src/main/java/de/tudresden/inf/st/mquat/solving/ilp/AbstractILPSolver.java b/jastadd-mquat-solver-ilp/src/main/java/de/tudresden/inf/st/mquat/solving/ilp/AbstractILPSolver.java
index 0127a8d2af3f82479feea2c593d388085ac49c76..bebf937dfbc548d280c0f63f65860c186e29977c 100644
--- a/jastadd-mquat-solver-ilp/src/main/java/de/tudresden/inf/st/mquat/solving/ilp/AbstractILPSolver.java
+++ b/jastadd-mquat-solver-ilp/src/main/java/de/tudresden/inf/st/mquat/solving/ilp/AbstractILPSolver.java
@@ -65,16 +65,20 @@ public abstract class AbstractILPSolver implements BenchmarkableSolver {
   @Override
   public synchronized Solution solve(Root model) throws SolvingException {
     reset();
+    StopWatch watch = StopWatch.start();
     if (model.getNumRequest() == 0) {
+      lastGeneration = watch.time(TimeUnit.MILLISECONDS);
+      cleanup(watch);
       return Solution.emptySolutionOf(model);
     }
 
-    StopWatch watch = StopWatch.start();
+
     final ILP ilp = model.getILP();
     lastGeneration = watch.time(TimeUnit.MILLISECONDS);
     logger.debug("ILP-Generation took {}ms.", lastGeneration);
     if (ilp.hasTimeout()) {
       logger.error("ILP-Generation exceeded timeout, message: '{}'", ilp.timeoutReason());
+      cleanup(watch);
       return Solution.emptySolutionOf(model);
     }