diff --git a/mythtv/libs/libmythtv/mythplayer.cpp b/mythtv/libs/libmythtv/mythplayer.cpp
index 6de1684..a764011 100644
--- a/mythtv/libs/libmythtv/mythplayer.cpp
+++ b/mythtv/libs/libmythtv/mythplayer.cpp
@@ -2254,7 +2254,21 @@ bool MythPlayer::Rewind(float seconds)
         return false;
 
     if (rewindtime <= 0)
-        rewindtime = (long long)(seconds * video_frame_rate);
+    {
+        uint64_t fp = framesPlayed;
+        uint64_t delta = (seconds * video_frame_rate);
+        uint64_t target = (fp >= delta ? fp - delta : 0);
+        if (IsInDelete(target))
+        {
+            target = GetNearestMark(target, false);
+            const int extraSecs = 3;
+            if (target >= extraSecs * video_frame_rate)
+                target -= extraSecs * video_frame_rate;
+            else
+                target = 0;
+        }
+        rewindtime = (long long)(fp - target);
+    }
     return (uint64_t)rewindtime >= framesPlayed;
 }
 
