diff --git a/avrdude/avrprog.c b/avrdude/avrprog.c
index cd06ec2e..02e89de3 100644
--- a/avrdude/avrprog.c
+++ b/avrdude/avrprog.c
@@ -1580,6 +1580,8 @@ int cmd_write ( int fd, struct avrpart * p, int argc, char * argv[] )
     i++;
   }
 
+  free(buf);
+
   fprintf(stdout, "\n");
 
   return 0;