Index: libs/libmythtv/deletemap.cpp
===================================================================
--- libs/libmythtv/deletemap.cpp	(revision 25143)
+++ libs/libmythtv/deletemap.cpp	(working copy)
@@ -71,7 +71,7 @@
 {
     if (!osd || !ctx)
         return;
-    CleanMap(total);
+    //CleanMap(total);
 
     InfoMap infoMap;
     ctx->LockPlayingInfo(__FILE__, __LINE__);
@@ -162,7 +162,7 @@
         int type = Delete(it.key());
         Add(it.key(), type == MARK_CUT_END ? MARK_CUT_START : MARK_CUT_END);
     }
-    CleanMap(total);
+    //CleanMap(total);
 }
 
 /**
@@ -177,6 +177,7 @@
        ((MARK_CUT_START != type) && (MARK_CUT_END != type)))
         return;
 
+#if 0
     int       lasttype  = MARK_UNSET;
     long long lastframe = -1;
     long long remove    = -1;
@@ -224,8 +225,9 @@
 
     if (remove > -1)
         Delete((uint64_t)remove);
+#endif // 0
     Add(frame, type);
-    CleanMap(total);
+    //CleanMap(total);
 }
 
 /// Remove the mark at the given frame.
@@ -233,7 +235,7 @@
 {
     EDIT_CHECK
     Delete(frame);
-    CleanMap(total);
+    //CleanMap(total);
 }
 
 /// Reverse the direction of the mark at the given frame.
@@ -387,7 +389,7 @@
             uint64_t thisframe = it.key();
             if (lasttype == thistype)
             {
-                Delete(thistype == MARK_CUT_END ? thisframe :
+                Delete(thistype == MARK_CUT_START ? thisframe :
                                                   (uint64_t)lastframe);
                 clear = false;
                 break;
Index: libs/libmythtv/osd.cpp
===================================================================
--- libs/libmythtv/osd.cpp	(revision 25143)
+++ libs/libmythtv/osd.cpp	(working copy)
@@ -429,44 +429,33 @@
     long long start = -1;
     long long end   = -1;
     bool first = true;
+    QVector<float> pendingStarts;
+    int i;
     QMapIterator<uint64_t, MarkTypes> it(map);
     while (it.hasNext())
     {
-        bool error = false;
         it.next();
         if (it.value() == MARK_CUT_START)
         {
             start = it.key();
-            if (end > -1)
-                error = true;
+            pendingStarts += start;
         }
         else if (it.value() == MARK_CUT_END)
         {
             if (first)
                 start = 0;
-            if (start < 0)
-                error = true;
             end = it.key();
+            if (pendingStarts.isEmpty())
+                pendingStarts += start;
+            for (i=0; i<pendingStarts.size(); i++)
+                bar->AddRegion((float)(pendingStarts[i]/(double)total),
+                               (float)(end/(double)total));
+            pendingStarts.clear();
         }
         first = false;
-
-        if (error)
-        {
-            VERBOSE(VB_IMPORTANT, LOC_ERR + "deleteMap discontinuity");
-            start = -1;
-            end   = -1;
-        }
-
-        if (start >=0 && end >= 0)
-        {
-            bar->AddRegion((float)((double)start/(double)total),
-                           (float)((double)end/(double)total));
-            start = -1;
-            end   = -1;
-        }
     }
-    if (start > -1 && end < 0)
-        bar->AddRegion((float)((double)start/(double)total), 1.0f);
+    for (i=0; i<pendingStarts.size(); i++)
+        bar->AddRegion((float)(pendingStarts[i]/(double)total), 1.0f);
 
     bar->Display();
 }
Index: libs/libmythui/mythuieditbar.cpp
===================================================================
--- libs/libmythui/mythuieditbar.cpp	(revision 25143)
+++ libs/libmythui/mythuieditbar.cpp	(working copy)
@@ -247,7 +247,8 @@
         }
         else
         {
-            m_invregions.append(qMakePair(start, region.first));
+            if (region.first > start)
+                m_invregions.append(qMakePair(start, region.first));
             start = region.second;
         }
     }
