diff --git a/ChangeLog b/ChangeLog
index 5bb78e19..c7d65af1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-03-25 Colin O'Flynn <coflynn@newae.com>
+
+	* stk500generic.c: Forgot to close the serial port before trying to
+          open it again, caused problems on Windows machines.
+    Closes bug #19411
+
 2007-02-26 Joerg Wunsch <j@uriah.heep.sax.de>
 
 	* avrdude.conf.in: Add the AT90PWM2/3B devices.
diff --git a/stk500generic.c b/stk500generic.c
index 3ea9d868..527c2302 100644
--- a/stk500generic.c
+++ b/stk500generic.c
@@ -48,6 +48,8 @@ static int stk500generic_open(PROGRAMMER * pgm, char * port)
       return 0;
     }
 
+  pgm->close(pgm);
+
   stk500v2_initpgm(pgm);
   if (pgm->open(pgm, port) >= 0)
     {