diff --git a/src/node/test/call_test.js b/src/node/test/call_test.js
index b7f4f5651053ad4d730fbecc9fdce12101a27c4c..f1f86b35db39a4efc201e415dc26e73326917558 100644
--- a/src/node/test/call_test.js
+++ b/src/node/test/call_test.js
@@ -107,6 +107,12 @@ describe('call', function() {
         new grpc.Call(channel, 'method', 'now');
       }, TypeError);
     });
+    it('should succeed without the new keyword', function() {
+      assert.doesNotThrow(function() {
+        var call = grpc.Call(channel, 'method', new Date());
+        assert(call instanceof grpc.Call);
+      });
+    });
   });
   describe('deadline', function() {
     it('should time out immediately with negative deadline', function(done) {
diff --git a/src/node/test/channel_test.js b/src/node/test/channel_test.js
index 5bcf63ee50bc7a4b62b645770b99e26e5196f480..7163a5fb5ee2467ae025a43f6da5623c718d22ff 100644
--- a/src/node/test/channel_test.js
+++ b/src/node/test/channel_test.js
@@ -104,6 +104,12 @@ describe('channel', function() {
         new grpc.Channel('hostname', insecureCreds, {'key' : new Date()});
       });
     });
+    it('should succeed without the new keyword', function() {
+      assert.doesNotThrow(function() {
+        var channel = grpc.Channel('hostname', insecureCreds);
+        assert(channel instanceof grpc.Channel);
+      });
+    });
   });
   describe('close', function() {
     var channel;
diff --git a/src/node/test/surface_test.js b/src/node/test/surface_test.js
index 71801c38dd17871d15b567f0ccd0240b4ffd26e9..8aa76fd1eff9cb2a2a2aca5636de3fdc46736bf7 100644
--- a/src/node/test/surface_test.js
+++ b/src/node/test/surface_test.js
@@ -365,6 +365,18 @@ describe('Echo metadata', function() {
       done();
     });
   });
+  it('properly handles duplicate values', function(done) {
+    var dup_metadata = metadata.clone();
+    dup_metadata.add('key', 'value2');
+    var call = client.unary({}, function(err, data) {assert.ifError(err); },
+                            dup_metadata);
+    call.on('metadata', function(resp_metadata) {
+      // Two arrays are equal iff their symmetric difference is empty
+      assert.deepEqual(_.xor(dup_metadata.get('key'), resp_metadata.get('key')),
+                       []);
+      done();
+    });
+  });
 });
 describe('Other conditions', function() {
   var test_service;