diff --git a/CHANGES b/CHANGES
index 93e77c7a354c5e1259a3fef113a064b26b907888..fcec5e2a8b2e0503ac929450a45b164f222bb73b 100644
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,12 @@
 
                                   Changelog
 
+Daniel (26 November 2004)
+- As reported in Mandrake's bug tracker bug 12289
+  (http://qa.mandrakesoft.com/show_bug.cgi?id=12289), curl would print a
+  newline to "finish" the progress meter after each redirect and not only
+  after a completed transfer.
+
 Daniel (25 November 2004)
 - FTP improvements:
 
diff --git a/lib/progress.c b/lib/progress.c
index 55f316acc3dc4d469211f81309320cd1ae608684..ce1adb805b92fa6e8da07f947c2a7cbde5122dec 100644
--- a/lib/progress.c
+++ b/lib/progress.c
@@ -139,10 +139,8 @@ void Curl_pgrsDone(struct connectdata *conn)
   struct SessionHandle *data = conn->data;
   data->progress.lastshow=0;
   Curl_pgrsUpdate(conn); /* the final (forced) update */
-  if(!(data->progress.flags & PGRS_HIDE) &&
-     !data->progress.callback)
-    /* only output if we don't use a progress callback and we're not hidden */
-    fprintf(data->set.err, "\n");
+
+  data->progress.speeder_c = 0; /* reset the progress meter display */
 }
 
 /* reset all times except redirect */
diff --git a/lib/transfer.c b/lib/transfer.c
index 5e833353850bc0400a409b19b0536b4aa92ec8b7..017784552bd772b47ed9d40b5f130c23d86d278c 100644
--- a/lib/transfer.c
+++ b/lib/transfer.c
@@ -1657,6 +1657,11 @@ CURLcode Curl_posttransfer(struct SessionHandle *data)
   (void)data; /* unused parameter */
 #endif
 
+  if(!(data->progress.flags & PGRS_HIDE) &&
+     !data->progress.callback)
+    /* only output if we don't use a progress callback and we're not hidden */
+    fprintf(data->set.err, "\n");
+
   return CURLE_OK;
 }