diff --git a/parallel.js b/parallel.js
index <HASH>..<HASH> 100644
--- a/parallel.js
+++ b/parallel.js
@@ -18,7 +18,7 @@ function parallel (options) {
     last = null
 
     if (toCall.length === 0) {
-      done()
+      done.call(that)
       released(last)
     } else {
       holder._callback = done
diff --git a/test.js b/test.js
index <HASH>..<HASH> 100644
--- a/test.js
+++ b/test.js
@@ -199,3 +199,14 @@ test('call the callback with the given this with no results', function (t) {
     }
   }
 })
+
+test('call the callback with the given this with no data', function (t) {
+  t.plan(1)
+
+  var instance = parallel()
+  var obj = {}
+
+  instance(obj, [], 42, function done () {
+    t.equal(obj, this, 'this matches')
+  })
+})
Call the final callback with the given this even if there is nothing to call.