diff --git a/lib/modules/Thread.pmod b/lib/modules/Thread.pmod
index ee416d4518bdc7c6824a9b9f1da1cc7dff84839a..d8c7ea2637d2d9166d012a8e852379e9fc05f9d0 100644
--- a/lib/modules/Thread.pmod
+++ b/lib/modules/Thread.pmod
@@ -579,12 +579,16 @@ class Mutex
 	if (locks) error ("Recursive mutex locks.\n");
 	break;
       case 1:
-	break;
-      case 2:
 	if (locks)
 	  // To be really accurate we should hang now, but somehow
 	  // that doesn't seem too useful.
 	  error ("Deadlock detected.\n");
+	break;
+      case 2:
+	if (locks) {
+	  locks++;
+	  return 0;
+	}
     }
     locks++;
     return MutexKey (dec_locks);