1GI7A6R
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIThread.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIThread.java
index 28013e7..e1c013b 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIThread.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/JDIThread.java
@@ -632,7 +632,7 @@
 					} else {

 						stepReturn0();

 						fRunning = true;

-						fStepCount--;

+						decrementStepCount();

 						return;

 					}

 				}

@@ -758,7 +758,7 @@
 				}

 			} else {

 				if (detail == DebugEvent.STEP_END) {

-					fStepCount--;

+					decrementStepCount();

 				}

 				if (fStepCount == 0) {

 					stopStepTimer();

@@ -983,6 +983,12 @@
 		abortStep();

 	}

 	

+	protected void decrementStepCount() {

+		if (fStepCount > 0) {

+			fStepCount--;

+		}

+	}

+	

 	/**

 	 * Aborts the drop

 	 */