diff U3 F:/openIB-windows-svn/WOF2-1/RC-4/ulp/ipoib/kernel/ipoib_port.c.orig F:/openIB-windows-svn/WOF2-1/RC-4/ulp/ipoib/kernel/ipoib_port.c
--- F:/openIB-windows-svn/WOF2-1/RC-4/ulp/ipoib/kernel/ipoib_port.c.orig	Mon Jul 13 09:47:18 2009
+++ F:/openIB-windows-svn/WOF2-1/RC-4/ulp/ipoib/kernel/ipoib_port.c	Wed Aug 12 10:54:25 2009
@@ -4598,8 +4598,11 @@
 			&p_port->p_local_endpt->gid_item );
 		cl_qmap_remove_item( &p_port->endpt_mgr.mac_endpts,
 			&p_port->p_local_endpt->mac_item );
-		cl_qmap_remove_item( &p_port->endpt_mgr.lid_endpts,
-			&p_port->p_local_endpt->lid_item );
+		if( p_port->p_local_endpt->dlid ) {
+			cl_qmap_remove_item( &p_port->endpt_mgr.lid_endpts,
+				&p_port->p_local_endpt->lid_item );
+			p_port->p_local_endpt->dlid = 0;
+		}
 		
 		cl_qlist_insert_head(
 			&mc_list, &p_port->p_local_endpt->mac_item.pool_item.list_item );
@@ -5155,6 +5158,7 @@
 		{
 			cl_qmap_remove_item(
 				&p_port->endpt_mgr.lid_endpts, &p_endpt->lid_item );
+			p_endpt->dlid = 0;
 		}
 
 		cl_obj_unlock( &p_port->obj );
