diff --git a/lnet/klnds/qswlnd/qswlnd.h b/lnet/klnds/qswlnd/qswlnd.h
index a5d512465e44d815234bc2f23e1932afd23630c4..b1b9a4508789ceb117df09e53898eab83883ea0d 100644
--- a/lnet/klnds/qswlnd/qswlnd.h
+++ b/lnet/klnds/qswlnd/qswlnd.h
@@ -311,40 +311,9 @@ static inline void kqswnal_rx_done (kqswnal_rx_t *krx)
 }
 
 #if MULTIRAIL_EKC
-
-#ifndef EP_RAILMASK_ALL
-# error "old (unsupported) version of EKC headers"
-#endif
-
-static inline int
-ep_nmd_merge (EP_NMD *merged, EP_NMD *a, EP_NMD *b)
-{
-        if (EP_NMD_NODEID(a) != EP_NMD_NODEID(b)) /* not generated on the same node */
-                return 0;
-
-        if ((EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b)) == 0) /* no common rails */
-                return 0;
-
-        if (b->nmd_addr == (a->nmd_addr + a->nmd_len)) {
-                if (merged != NULL) {
-                        merged->nmd_addr = a->nmd_addr;
-                        merged->nmd_len  = a->nmd_len + b->nmd_len;
-                        merged->nmd_attr = EP_NMD_ATTR(EP_NMD_NODEID(a), EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b));
-                }
-                return 1;
-        }
-    
-        if (a->nmd_addr == (b->nmd_addr + b->nmd_len)) {
-                if (merged != NULL) {
-                        merged->nmd_addr = b->nmd_addr;
-                        merged->nmd_len   = b->nmd_len + a->nmd_len;
-                        merged->nmd_attr  = EP_NMD_ATTR(EP_NMD_NODEID(b), EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b));
-                }
-                return 1;
-        }
-
-        return 0;
-}
+# ifndef EP_RAILMASK_ALL
+#  error "old (unsupported) version of EKC headers"
+# endif
 #else
 /* multirail defines these in <elan/epcomms.h> */
 #define EP_MSG_SVC_PORTALS_SMALL      (0x10)  /* Portals over elan port number (large payloads) */
diff --git a/lnet/klnds/socklnd/socklnd.c b/lnet/klnds/socklnd/socklnd.c
index 49956a23de1dd4847d85e47ed263bb2a8eb51c78..d996341fd001669362b83a9ea6036ce1a79ab687 100644
--- a/lnet/klnds/socklnd/socklnd.c
+++ b/lnet/klnds/socklnd/socklnd.c
@@ -796,6 +796,10 @@ ksocknal_create_conn (ksock_route_t *route, struct socket *sock,
         peer->ksnp_last_alive = jiffies;
         peer->ksnp_error = 0;
 
+        /* Set the deadline for the outgoing HELLO to drain */
+        conn->ksnc_tx_deadline = jiffies + 
+                                 ksocknal_data.ksnd_io_timeout * HZ;
+
         list_add (&conn->ksnc_list, &peer->ksnp_conns);
         atomic_inc (&conn->ksnc_refcount);
 
diff --git a/lustre/portals/knals/qswnal/qswnal.h b/lustre/portals/knals/qswnal/qswnal.h
index a5d512465e44d815234bc2f23e1932afd23630c4..b1b9a4508789ceb117df09e53898eab83883ea0d 100644
--- a/lustre/portals/knals/qswnal/qswnal.h
+++ b/lustre/portals/knals/qswnal/qswnal.h
@@ -311,40 +311,9 @@ static inline void kqswnal_rx_done (kqswnal_rx_t *krx)
 }
 
 #if MULTIRAIL_EKC
-
-#ifndef EP_RAILMASK_ALL
-# error "old (unsupported) version of EKC headers"
-#endif
-
-static inline int
-ep_nmd_merge (EP_NMD *merged, EP_NMD *a, EP_NMD *b)
-{
-        if (EP_NMD_NODEID(a) != EP_NMD_NODEID(b)) /* not generated on the same node */
-                return 0;
-
-        if ((EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b)) == 0) /* no common rails */
-                return 0;
-
-        if (b->nmd_addr == (a->nmd_addr + a->nmd_len)) {
-                if (merged != NULL) {
-                        merged->nmd_addr = a->nmd_addr;
-                        merged->nmd_len  = a->nmd_len + b->nmd_len;
-                        merged->nmd_attr = EP_NMD_ATTR(EP_NMD_NODEID(a), EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b));
-                }
-                return 1;
-        }
-    
-        if (a->nmd_addr == (b->nmd_addr + b->nmd_len)) {
-                if (merged != NULL) {
-                        merged->nmd_addr = b->nmd_addr;
-                        merged->nmd_len   = b->nmd_len + a->nmd_len;
-                        merged->nmd_attr  = EP_NMD_ATTR(EP_NMD_NODEID(b), EP_NMD_RAILMASK(a) & EP_NMD_RAILMASK(b));
-                }
-                return 1;
-        }
-
-        return 0;
-}
+# ifndef EP_RAILMASK_ALL
+#  error "old (unsupported) version of EKC headers"
+# endif
 #else
 /* multirail defines these in <elan/epcomms.h> */
 #define EP_MSG_SVC_PORTALS_SMALL      (0x10)  /* Portals over elan port number (large payloads) */
diff --git a/lustre/portals/knals/socknal/socknal.c b/lustre/portals/knals/socknal/socknal.c
index 49956a23de1dd4847d85e47ed263bb2a8eb51c78..d996341fd001669362b83a9ea6036ce1a79ab687 100644
--- a/lustre/portals/knals/socknal/socknal.c
+++ b/lustre/portals/knals/socknal/socknal.c
@@ -796,6 +796,10 @@ ksocknal_create_conn (ksock_route_t *route, struct socket *sock,
         peer->ksnp_last_alive = jiffies;
         peer->ksnp_error = 0;
 
+        /* Set the deadline for the outgoing HELLO to drain */
+        conn->ksnc_tx_deadline = jiffies + 
+                                 ksocknal_data.ksnd_io_timeout * HZ;
+
         list_add (&conn->ksnc_list, &peer->ksnp_conns);
         atomic_inc (&conn->ksnc_refcount);