Complete the merger of WebSocketTransport and XpcomTransport up into NDN: Moved expressInterest in the transport up to NDN.reconnectAndExpressInterest.
diff --git a/js/NDN.js b/js/NDN.js
index 5f1c746..edc4d84 100644
--- a/js/NDN.js
+++ b/js/NDN.js
@@ -168,15 +168,29 @@
         else {
             var thisNDN = this;
             this.connectAndExecute
-                (function() { thisNDN.transport.expressInterest(thisNDN, interest, closure); });
+                (function() { thisNDN.reconnectAndExpressInterest(interest, closure); });
         }
     }
     else
-        this.transport.expressInterest(this, interest, closure);
+        this.reconnectAndExpressInterest(interest, closure);
 };
 
 /*
- * Do the work of expressInterest once we know we are connected.  Set the PITTable and call
+ * If the host and port are different than the ones in this.transport, then call
+ *   this.transport.connect to change the connection (or connect for the first time).
+ * Then call expressInterestHelper.
+ */
+NDN.prototype.reconnectAndExpressInterest = function(interest, closure) {
+    if (this.transport.connectedHost != this.host || this.transport.connectedPort != this.port) {
+        var thisNDN = this;
+        this.transport.connect(thisNDN, function() { thisNDN.expressInterestHelper(interest, closure); });
+    }
+    else
+        this.expressInterestHelper(interest, closure);
+};
+
+/*
+ * Do the work of reconnectAndExpressInterest once we know we are connected.  Set the PITTable and call
  *   this.transport.send to send the interest.
  */
 NDN.prototype.expressInterestHelper = function(interest, closure) {
@@ -220,8 +234,8 @@
             var interest = new Interest(NDN.ccndIdFetcher);
     		interest.interestLifetime = 4000; // milliseconds
             if (LOG>3) console.log('Expressing interest for ccndid from ccnd.');
-            thisNDN.transport.expressInterest
-               (thisNDN, interest, new NDN.FetchCcndidClosure(thisNDN, name, closure, flag));
+            thisNDN.reconnectAndExpressInterest
+               (interest, new NDN.FetchCcndidClosure(thisNDN, name, closure, flag));
         }
         else	
             thisNDN.registerPrefixHelper(name, closure, flag);
@@ -504,8 +518,8 @@
         thisNDN.connectAndExecute(onConnected);
 	}, 3000);
   
-    this.transport.expressInterest
-        (this, interest, new NDN.ConnectClosure(this, onConnected, timerID));
+    this.reconnectAndExpressInterest
+        (interest, new NDN.ConnectClosure(this, onConnected, timerID));
 };
 
 NDN.ConnectClosure = function ConnectClosure(ndn, onConnected, timerID) {