diff -ruNp a/core/device.c b/core/device.c
--- a/core/device.c	2006-05-04 10:49:03.000000000 +0530
+++ b/core/device.c	2006-05-04 10:51:50.000000000 +0530
@@ -349,6 +349,7 @@ void ib_unregister_client(struct ib_clie
 			if (context->client == client) {
 				list_del(&context->list);
 				kfree(context);
+				break;
 			}
 		spin_unlock_irqrestore(&device->client_data_lock, flags);
 	}
