diff --git a/lib/nodejs/test/test-cases.js b/lib/nodejs/test/test-cases.js
index 0d13cdd..c396ca9 100644
--- a/lib/nodejs/test/test-cases.js
+++ b/lib/nodejs/test/test-cases.js
@@ -73,16 +73,10 @@
   mapout[i] = i-10;
 }
 
-var mapMapTest = {
-  "4": {"1":1, "2":2, "3":3, "4":4},
-  "-4": {"-4":-4, "-3":-3, "-2":-2, "-1":-1}
-};
-
 var deep = [
   ['testMap', mapout],
   ['testSet', [1,2,3]],
   ['testList', [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]],
-  ['testMapMap', mapMapTest],
   ['testStringMap', mapTestInput]
 ];
 
diff --git a/lib/nodejs/test/test_driver.js b/lib/nodejs/test/test_driver.js
index f79baa6..6e472ad 100644
--- a/lib/nodejs/test/test_driver.js
+++ b/lib/nodejs/test/test_driver.js
@@ -29,6 +29,7 @@
 var test = require('tape');
 //var assert = require('assert');
 var ttypes = require('./gen-nodejs/ThriftTest_types');
+var TException = require('thrift').Thrift.TException;
 var Int64 = require('node-int64');
 var testCases = require('./test-cases');
 
@@ -55,6 +56,15 @@
     }));
     testCases.deep.forEach(makeAsserter(assert.deepEqual));
 
+    client.testMapMap(42, function(err, response) {
+      var expected = {
+        "4": {"1":1, "2":2, "3":3, "4":4},
+        "-4": {"-4":-4, "-3":-3, "-2":-2, "-1":-1}
+      };
+      assert.error(err, 'testMapMap: no callback error');
+      assert.deepEqual(expected, response, 'testMapMap');
+    });
+
     client.testStruct(testCases.out, function(err, response) {
       assert.error(err, 'testStruct: no callback error');
       checkRecursively(testCases.out, response, 'testStruct');
@@ -71,11 +81,12 @@
     });
 
     client.testException('TException', function(err, response) {
-      assert.error(err, 'testException: no callback error');
+      assert.ok(err instanceof TException, 'testException: correct error type');
       assert.ok(!response, 'testException: no response');
     });
 
     client.testException('Xception', function(err, response) {
+      assert.ok(err instanceof ttypes.Xception, 'testException: correct error type');
       assert.ok(!response, 'testException: no response');
       assert.equal(err.errorCode, 1001, 'testException: correct error code');
       assert.equal('Xception', err.message, 'testException: correct error message');
@@ -152,15 +163,18 @@
 
     client.testException('TException')
       .then(function(response) {
-        assert.ok(!response, 'testException: TException');
+        fail('testException: TException');
       })
-      .fail(fail('testException: TException'));
+      .fail(function(err) {
+        assert.ok(err instanceof TException);
+      });
 
     client.testException('Xception')
       .then(function(response) {
-        assert.ok(!response);
+        fail('testException: Xception');
       })
       .fail(function(err) {
+        assert.ok(err instanceof ttypes.Xception);
         assert.equal(err.errorCode, 1001);
         assert.equal('Xception', err.message);
       });
diff --git a/lib/nodejs/test/test_handler.js b/lib/nodejs/test/test_handler.js
index de6f503..da32906 100644
--- a/lib/nodejs/test/test_handler.js
+++ b/lib/nodejs/test/test_handler.js
@@ -213,11 +213,11 @@
     x2.struct_thing = new ttypes.Xtruct();
     x2.struct_thing.string_thing = 'This is an Xception2';
     result(x2);
+  } else {
+    var res = new ttypes.Xtruct();
+    res.string_thing = arg1;
+    result(null, res);
   }
-
-  var res = new ttypes.Xtruct();
-  res.string_thing = arg1;
-  result(null, res);
 }
 
 function testOneway(sleepFor) {
