diff --git a/player/command.c b/player/command.c
index 46668f5471..5119857986 100644
--- a/player/command.c
+++ b/player/command.c
@@ -6739,6 +6739,11 @@ void mp_option_change_callback(void *ctx, struct m_config_option *co, int flags,
 
     if (opt_ptr == &opts->vo->taskbar_progress)
         update_vo_playback_state(mpctx);
+
+    if (opt_ptr == &opts->image_display_duration && mpctx->vo_chain
+        && mpctx->vo_chain->is_sparse && !mpctx->ao_chain
+        && mpctx->video_status == STATUS_DRAINING)
+        mpctx->time_frame = opts->image_display_duration;
 }
 
 void mp_notify_property(struct MPContext *mpctx, const char *property)