Index: b/src/lib/liblow.c
===================================================================
--- a/src/lib/liblow.c	2008-02-25 06:17:55.000000000 +0200
+++ b/src/lib/liblow.c	2008-02-25 06:18:24.000000000 +0200
@@ -386,11 +386,11 @@ int Gpm_Open(Gpm_Connect *conn, int flag
   /*....................................... Error: free all memory */
    err:
    gpm_report(GPM_PR_ERR,"Oh, oh, it's an error! possibly I die! ");
-   do {
+   while(gpm_stack) {
       new=gpm_stack->next;
       free(gpm_stack);
       gpm_stack=new;
-   } while(gpm_stack);
+   }
    if (gpm_fd>=0) close(gpm_fd);
    if (sock_name) {
       unlink(sock_name);
