diff --git a/Marlin/src/lcd/dogm/status_screen_DOGM.cpp b/Marlin/src/lcd/dogm/status_screen_DOGM.cpp
index 752413a68c..591d0f08ad 100644
--- a/Marlin/src/lcd/dogm/status_screen_DOGM.cpp
+++ b/Marlin/src/lcd/dogm/status_screen_DOGM.cpp
@@ -432,13 +432,19 @@ void MarlinUI::draw_status_screen() {
         #if ENABLED(SHOW_REMAINING_TIME)
           if (!(ev & 0x3)) {
             duration_t estimation = elapsed.value * (100 * (PROGRESS_SCALE) - progress) / progress;
-            const bool has_days = (estimation.value >= 60*60*24L);
-            const uint8_t len = estimation.toDigital(estimation_string, has_days);
-            #if ENABLED(DOGM_SD_PERCENT) && ENABLED(ROTATE_PROGRESS_DISPLAY)
-              estimation_x_pos = _SD_DURATION_X(len);
-            #else
-              estimation_x_pos = _SD_DURATION_X(len + 1);
-            #endif
+            if (estimation.value == 0) {
+              estimation_string[0] = '\0';
+              estimation_x_pos = _PROGRESS_CENTER_X(0);
+            }
+            else {
+              const bool has_days = (estimation.value >= 60*60*24L);
+              const uint8_t len = estimation.toDigital(estimation_string, has_days);
+              #if ENABLED(DOGM_SD_PERCENT) && ENABLED(ROTATE_PROGRESS_DISPLAY)
+                estimation_x_pos = _SD_DURATION_X(len);
+              #else
+                estimation_x_pos = _SD_DURATION_X(len + 1);
+              #endif
+            }
           }
         #endif
       }