diff --git a/decoder/src/Decoder.cpp b/decoder/src/Decoder.cpp
index db0444a0d07cc329f8359011698d60417f50f8e2..48eb5b11a2d8671c0c87301285e0e95c668ecbe8 100644
--- a/decoder/src/Decoder.cpp
+++ b/decoder/src/Decoder.cpp
@@ -63,7 +63,7 @@ void Decoder::decode(BaseConfig & config, std::size_t beamSize, bool debug, bool
         auto actualTime = std::chrono::high_resolution_clock::now();
         double seconds = std::chrono::duration<double, std::milli>(actualTime-pastTime).count() / 1000.0;
         pastTime = actualTime;
-        fmt::print(stderr, "\rdecoding... speed={:<5}ex/s\r", (int)(nbExamplesProcessed/seconds));
+        fmt::print(stderr, "\r{:80}\rdecoding... speed={:<6}ex/s\r", "", (int)(nbExamplesProcessed/seconds));
         nbExamplesProcessed = 0;
       }
 
diff --git a/trainer/src/Trainer.cpp b/trainer/src/Trainer.cpp
index 0dc197c3e2a0b7298856129c2316f8f3c6c65561..450c41660246845d180b250d97d479c3d3fd8eb8 100644
--- a/trainer/src/Trainer.cpp
+++ b/trainer/src/Trainer.cpp
@@ -134,9 +134,9 @@ float Trainer::processDataset(DataLoader & loader, bool train, bool printAdvance
         double seconds = std::chrono::duration<double, std::milli>(actualTime-pastTime).count() / 1000.0;
         pastTime = actualTime;
         if (train)
-          fmt::print(stderr, "\rcurrent epoch : {:6.2f}% loss={:<7.3f} speed={:<6}ex/s", 100.0*(currentBatchNumber*batchSize)/nbExamples, lossSoFar, (int)(nbExamplesProcessed/seconds));
+          fmt::print(stderr, "\r{:80}\rcurrent epoch : {:6.2f}% loss={:<7.3f} speed={:<6}ex/s", "", 100.0*(currentBatchNumber*batchSize)/nbExamples, lossSoFar, (int)(nbExamplesProcessed/seconds));
         else
-          fmt::print(stderr, "\reval on dev : loss={:<7.3f} speed={:<6}ex/s", lossSoFar, (int)(nbExamplesProcessed/seconds));
+          fmt::print(stderr, "\r{:80}\reval on dev : loss={:<7.3f} speed={:<6}ex/s", "", lossSoFar, (int)(nbExamplesProcessed/seconds));
         lossSoFar = 0;
         nbExamplesProcessed = 0;
       }