diff --git a/lib/step.js b/lib/step.js
index <HASH>..<HASH> 100755
--- a/lib/step.js
+++ b/lib/step.js
@@ -64,25 +64,24 @@ function Step() {
   next.parallel = function () {
     var i = counter;
     counter++;
+
     function check() {
-      counter--;
       if (counter === 0) {
         // When they're all done, call the callback
         next.apply(null, results);
       }
     }
+    process.nextTick(check); // Ensures that check is called at least once
+
     return function () {
+      counter--;
       // Compress the error from any result to the first argument
       if (arguments[0]) {
         results[0] = arguments[0];
       }
       // Send the other results as arguments
       results[i + 1] = arguments[1];
-      if (lock) {
-        process.nextTick(check);
-        return
-      }
-      check();
+      if (!lock) { check(); }
     };
   };
Made next.parallel more consistent with next.group