diff -urN lcdproc-cvs/server/drivers/picolcd.c lcdproc-cvs-memleak-patch/server/drivers/picolcd.c
--- lcdproc-cvs/server/drivers/picolcd.c	2007-10-08 18:53:45.000000000 +0300
+++ lcdproc-cvs-memleak-patch/server/drivers/picolcd.c	2007-11-16 23:43:30.000000000 +0200
@@ -535,12 +535,13 @@
 		} else {
 			debug(RPT_DEBUG, "picolcd: get_key got non-key data or timeout");
 			/* We got IR or otherwise bad data */
+			free(keydata);
 			return NULL;
 		}
 
 	}
 
-   free(keydata);
+	free(keydata);
 
 	debug(RPT_DEBUG, "picolcd: get_key complete (%s)", keystr);
 
