Index: source/nsswitch/winbindd_dual.c =================================================================== --- source/nsswitch/winbindd_dual.c.orig 2008-09-20 12:07:04.000000000 +0530 +++ source/nsswitch/winbindd_dual.c 2008-09-20 16:32:04.000000000 +0530 @@ -299,7 +299,13 @@ while (request != NULL) { /* request might be free'd in the continuation */ struct winbindd_async_request *next = request->next; - request->continuation(request->private_data, False); + + DLIST_REMOVE(child->requests, request); + TALLOC_FREE(request->reply_timeout_event); + request->response->length = sizeof(struct winbindd_response); + request->response->result = WINBINDD_ERROR; + request->continuation(request->private_data, False); + request = next; } return;