diff -ur mysql-5.5.18.orig/sql-common/client.c mysql-5.5.18/sql-common/client.c --- mysql-5.5.18.orig/sql-common/client.c 2011-11-21 18:06:36.895327989 +0100 +++ mysql-5.5.18/sql-common/client.c 2011-11-21 18:07:44.511213214 +0100 @@ -3668,8 +3668,9 @@ LIST *element= mysql->stmts; LIST *pruned_list= 0; - for (; element; element= element->next) + while (element) { + LIST *next= element->next; MYSQL_STMT *stmt= (MYSQL_STMT *) element->data; if (stmt->state != MYSQL_STMT_INIT_DONE) { @@ -3680,8 +3681,11 @@ } else { + element->prev= 0; + element->next= 0; pruned_list= list_add(pruned_list, element); } + element= next; } mysql->stmts= pruned_list;