diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/src/org/eclipse/viatra/examples/cps/xform/m2t/monitor/AbstractDeploymentChangeMonitor.java b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/src/org/eclipse/viatra/examples/cps/xform/m2t/monitor/AbstractDeploymentChangeMonitor.java
index 1bdf67c..ee8aa6f 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/src/org/eclipse/viatra/examples/cps/xform/m2t/monitor/AbstractDeploymentChangeMonitor.java
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/src/org/eclipse/viatra/examples/cps/xform/m2t/monitor/AbstractDeploymentChangeMonitor.java
@@ -42,7 +42,8 @@
 	public abstract DeploymentChangeDelta createCheckpoint();
 	
 	/**
-	 * Returns all changed elements between the last two checkpoints
+	 * Returns all changed elements since the last call to {@link #createCheckpoint()}
+	 * 
 	 * @return the DTO containing the changed elements
 	 */
 	public abstract DeploymentChangeDelta getDeltaSinceLastCheckpoint();
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/src/org/eclipse/viatra/examples/cps/xform/m2t/monitor/ChangeMonitorJob.java b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/src/org/eclipse/viatra/examples/cps/xform/m2t/monitor/ChangeMonitorJob.java
index 41575d3..a20d3ec 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/src/org/eclipse/viatra/examples/cps/xform/m2t/monitor/ChangeMonitorJob.java
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/src/org/eclipse/viatra/examples/cps/xform/m2t/monitor/ChangeMonitorJob.java
@@ -56,7 +56,7 @@
 	@SuppressWarnings("unchecked")
 	private void store(DeploymentElement changedElement,Context context) {
 		Map<DeploymentElement, String> map = (Map<DeploymentElement, String>) context.get(OUTDATED_ELEMENTS);
-		// Sotre the old data in the values of the map
+		// Store the old data in the values of the map
 		if(changedElement instanceof DeploymentHost){
 			map.put(changedElement, ((Map<DeploymentHost,String>)context.get(HOSTS)).get((DeploymentHost)changedElement));						
 		}
diff --git a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/src/org/eclipse/viatra/examples/cps/xform/m2t/monitor/DeploymentChangeMonitor.java b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/src/org/eclipse/viatra/examples/cps/xform/m2t/monitor/DeploymentChangeMonitor.java
index 204aeca..f874820 100644
--- a/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/src/org/eclipse/viatra/examples/cps/xform/m2t/monitor/DeploymentChangeMonitor.java
+++ b/cps/transformations/org.eclipse.viatra.examples.cps.xform.m2t/src/org/eclipse/viatra/examples/cps/xform/m2t/monitor/DeploymentChangeMonitor.java
@@ -97,13 +97,18 @@
 	
 	@Override 
 	public DeploymentChangeDelta createCheckpoint() {
-		appearBetweenCheckpoints = appearAccumulator;
+		// Save current values
+	    appearBetweenCheckpoints = appearAccumulator;
 		updateBetweenCheckpoints = updateAccumulator;
 		disappearBetweenCheckpoints = disappearAccumulator;
+		deploymentBetweenCheckpointsChanged = deploymentChanged;
+
+		// Reset current values
 		appearAccumulator = Sets.newHashSet();
 		updateAccumulator = Sets.newHashSet();
 		disappearAccumulator = Sets.newHashSet();
-		deploymentBetweenCheckpointsChanged = deploymentChanged;
+		deploymentChanged = false;
+		
 		Map<DeploymentElement, String> elementsUpdatedOrDeleted = (Map<DeploymentElement, String>) executionSchema.getContext().get(ChangeMonitorJob.OUTDATED_ELEMENTS);
 		if(elementsUpdatedOrDeleted == null){
 		    elementsUpdatedOrDeleted = Maps.newHashMap();
