diff --git a/.classpath b/.classpath
index a6a0ef1695d1a57f2e0bb3875bb3432511961433..7ed6e8b9afcdbeb85ac36c9d50996a594b010866 100644
--- a/.classpath
+++ b/.classpath
@@ -4,6 +4,6 @@
 	<classpathentry kind="src" path="frameworks/Kieker/src"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="lib" path="lib/commons-cli-1.2.jar"/>
-	<classpathentry kind="lib" path="frameworks/Kieker/lib/kieker-1.10-SNAPSHOT_aspectj.jar"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/Kieker"/>
 	<classpathentry kind="output" path="build-eclipse"/>
 </classpath>
diff --git a/frameworks/Kieker/bin/meta-monitoring.sh b/frameworks/Kieker/bin/meta-monitoring.sh
index 479096b1648bb428536aea85e14c4dbd007e8da7..75f097f7ce5ecc5d3a487aadeeafe327f8068d33 100644
--- a/frameworks/Kieker/bin/meta-monitoring.sh
+++ b/frameworks/Kieker/bin/meta-monitoring.sh
@@ -7,8 +7,8 @@ RESULTSDIR="${BASEDIR}results/"
 
 THREADS=1            ## 1
 RECURSIONDEPTH=10    ## 10
-TOTALCALLS=1000      ## 2000000
-METHODTIME=500000    ## 500000
+TOTALCALLS=20000     ## 20000
+METHODTIME=0         ## 0
 
 #MOREPARAMS="--quickstart"
 MOREPARAMS="${MOREPARAMS} -r kieker.Logger -a mooBench.monitoredApplication.MonitoredClassManualInstrumentation"
diff --git a/frameworks/Kieker/src/mooBench/monitoredApplication/MonitoredClassManualInstrumentation.java b/frameworks/Kieker/src/mooBench/monitoredApplication/MonitoredClassManualInstrumentation.java
index fd276dfd84c5914c512e4e84b911c66b29d6741a..1b562587181a3e422a3ea0532af8ef7581ee1b43 100644
--- a/frameworks/Kieker/src/mooBench/monitoredApplication/MonitoredClassManualInstrumentation.java
+++ b/frameworks/Kieker/src/mooBench/monitoredApplication/MonitoredClassManualInstrumentation.java
@@ -49,7 +49,7 @@ public final class MonitoredClassManualInstrumentation implements MonitoredClass
 	}
 
 	public final long monitoredMethod(final long methodTime, final int recDepth) {
-		final TraceMetadata trace = MonitoredClassManualInstrumentation.triggerBefore();
+		final boolean newTrace = MonitoredClassManualInstrumentation.triggerBefore();
 		long retval;
 		if (recDepth > 1) {
 			retval = this.monitoredMethod(methodTime, recDepth - 1);
@@ -61,17 +61,17 @@ public final class MonitoredClassManualInstrumentation implements MonitoredClass
 			} while (currentTime < exitTime);
 			retval = currentTime;
 		}
-		MonitoredClassManualInstrumentation.triggerAfter(trace);
+		MonitoredClassManualInstrumentation.triggerAfter(newTrace);
 		return retval;
 	}
 
-	private final static TraceMetadata triggerBefore() {
+	private final static boolean triggerBefore() {
 		if (!CTRLINST.isMonitoringEnabled()) {
-			return null;
+			return false;
 		}
 		final String signature = SIGNATURE;
 		if (!CTRLINST.isProbeActivated(signature)) {
-			return null;
+			return false;
 		}
 		TraceMetadata trace = TRACEREGISTRY.getTrace();
 		final boolean newTrace = trace == null;
@@ -82,12 +82,16 @@ public final class MonitoredClassManualInstrumentation implements MonitoredClass
 		final long traceId = trace.getTraceId();
 		final String clazz = CLAZZ;
 		CTRLINST.newMonitoringRecord(new BeforeOperationEvent(TIME.getTime(), traceId, trace.getNextOrderId(), signature, clazz));
-		return trace;
+		return newTrace;
 	}
 
-	private final static void triggerAfter(final TraceMetadata trace) {
+	private final static void triggerAfter(final boolean newTrace) {
+		final TraceMetadata trace = TRACEREGISTRY.getTrace();
 		final String signature = SIGNATURE;
 		final String clazz = CLAZZ;
 		CTRLINST.newMonitoringRecord(new AfterOperationEvent(TIME.getTime(), trace.getTraceId(), trace.getNextOrderId(), signature, clazz));
+		if (newTrace) { // close the trace
+			TRACEREGISTRY.unregisterTrace();
+		}
 	}
 }