diff --git a/mesh_looptools.py b/mesh_looptools.py
index 11b234ac0d40c1cf34e4d5ca169b1a5a61c27714..62d3b9bed1b364d6f7084ae67b4bc147c025babe 100644
--- a/mesh_looptools.py
+++ b/mesh_looptools.py
@@ -23,7 +23,7 @@
 bl_info = {
     "name": "LoopTools",
     "author": "Bart Crouch, Vladimir Spivak (cwolf3d)",
-    "version": (4, 7, 0),
+    "version": (4, 7, 1),
     "blender": (2, 80, 0),
     "location": "View3D > Sidebar > Edit Tab / Edit Mode Context Menu",
     "warning": "",
@@ -2324,8 +2324,16 @@ def curve_cut_boundaries(bm_mod, loops):
     cut_loops = []
     for loop, circular in loops:
         if circular:
-            # don't cut
-            cut_loops.append([loop, circular])
+            selected = [bm_mod.verts[v].select for v in loop]
+            first = selected.index(True)
+            selected.reverse()
+            last = -selected.index(True)
+            if last == 0:
+                if len(loop[first:]) < len(loop)/2:
+                    cut_loops.append([loop[first:], False])
+            else:
+                if len(loop[first:last]) < len(loop)/2:
+                    cut_loops.append([loop[first:last], False])
             continue
         selected = [bm_mod.verts[v].select for v in loop]
         first = selected.index(True)