Index: ipoib_driver.cpp
===================================================================
--- ipoib_driver.cpp	(revision 2948)
+++ ipoib_driver.cpp	(working copy)
@@ -3178,9 +3178,6 @@
 	ipoib_port_ref( p_port, ref_send_packets );
 	cl_obj_unlock( &p_adapter->obj );
 
-	if (NET_BUFFER_LIST_NEXT_NBL(net_buffer_list) != NULL) {
-		cl_dbg_out("Recieved a list of NBLS ................\n");
-	}
 	
 	for (curr_net_buffer_list = net_buffer_list;
 		curr_net_buffer_list != NULL;
Index: ipoib_port.cpp
===================================================================
--- ipoib_port.cpp	(revision 2959)
+++ ipoib_port.cpp	(working copy)
@@ -4245,8 +4245,10 @@
 			p_desc->send_wr[0].local_ds[j].length =
 				p_sgl->Elements[i].Length - EthHeaderOffset - DataOffset;
 			p_desc->send_wr[0].local_ds[j].lkey = s_buf->p_port->ib_mgr.lkey;
+			if( p_desc->send_wr[0].local_ds[j].length > 0 ) {
+				j++;
+			}            
 			i++;
-			j++;
 			break;
 		}
 	}
@@ -4255,6 +4257,7 @@
 	{
 		p_desc->send_wr[0].local_ds[j].vaddr = p_sgl->Elements[i].Address.QuadPart;
 		p_desc->send_wr[0].local_ds[j].length = p_sgl->Elements[i].Length;
+		CL_ASSERT(p_desc->send_wr[0].local_ds[j].length > 0);
 		p_desc->send_wr[0].local_ds[j].lkey = s_buf->p_port->ib_mgr.lkey;
 		i++;
 		j++;
