diff --git a/ChangeLog b/ChangeLog
index 465b773c..a9dae086 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2014-03-12  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
+
+	* pgm.c (pgm_free): Cleanup police: destroy the p->usbpid
+	list when freeing the programmer struct.
+
 2014-03-12  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
 
 	bug #40782: Verify errors for object size > 16 k on x32e5 due
diff --git a/pgm.c b/pgm.c
index 9df4ba63..88a6ac3d 100644
--- a/pgm.c
+++ b/pgm.c
@@ -140,7 +140,8 @@ PROGRAMMER * pgm_new(void)
 
 void pgm_free(PROGRAMMER * const p)
 {
-  ldestroy_cb(p->id,free);
+  ldestroy_cb(p->id, free);
+  ldestroy_cb(p->usbpid, free);
   p->id = NULL;
   /* this is done by pgm_teardown, but usually cookie is not set to NULL */
   /* if (p->cookie !=NULL) {