diff --git a/test/callback.js b/test/callback.js
index <HASH>..<HASH> 100644
--- a/test/callback.js
+++ b/test/callback.js
@@ -26,6 +26,27 @@ describe('Callback', function () {
     assert.strictEqual(null, func())
   })
 
+  it('should throw an Error when invoked after the callback gets garbage collected', function () {
+    var cb = ffi.Callback('void', [ ], function () {})
+
+    // register the callback function
+    bindings.set_cb(cb)
+
+    // should be ok
+    bindings.call_cb()
+
+    cb = null // KILL!!
+    gc()
+
+    // should throw an Error synchronously
+    try {
+      bindings.call_cb()
+      assert(false) // shouldn't get here
+    } catch (e) {
+      assert(/ffi/.test(e.message))
+    }
+  })
+
   describe('async', function () {
 
     it('should be invokable asynchronously by an ffi\'d ForeignFunction', function (done) {
@@ -112,14 +133,6 @@ describe('Callback', function () {
       cb = null // KILL!!
       gc()
 
-      // should throw an Error directly
-      try {
-        bindings.call_cb()
-        assert(false) // shouldn't get here
-      } catch (e) {
-        assert(/ffi/.test(e.message))
-      }
-
       // should generate an "uncaughtException" asynchronously
       bindings.call_cb_async()
     })
test: put the sync callback GC test in its own test

Rather than the "async" one