diff -urN gpm-1.19.6.old/src/liblow.c gpm-1.19.6/src/liblow.c
--- gpm-1.19.6.old/src/liblow.c	2003-02-11 19:48:18.000000000 +0100
+++ gpm-1.19.6/src/liblow.c	2003-02-11 19:49:00.000000000 +0100
@@ -383,13 +383,12 @@
 
   /*....................................... Error: free all memory */
  err:
-  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);
