diff --git a/curve_tools/auto_loft.py b/curve_tools/auto_loft.py
index 3092e6b856c13f2ea24fbee8bdd3c2cd01b506cf..b14aaf3b84b69b88c23dd3326da4886728c2a471 100644
--- a/curve_tools/auto_loft.py
+++ b/curve_tools/auto_loft.py
@@ -12,6 +12,7 @@ class OperatorAutoLoftCurves(Operator):
     bl_idname = "curvetools.create_auto_loft"
     bl_label = "Loft"
     bl_description = "Lofts selected curves"
+    bl_options = {'UNDO'}
 
     @classmethod
     def poll(cls, context):
diff --git a/curve_tools/operators.py b/curve_tools/operators.py
index e4480f882f3b351bc7fdd0f7f0d1b3c2c6507d74..d4ada3187e32bd39feed3ce1d84e9c4de6ac6971 100644
--- a/curve_tools/operators.py
+++ b/curve_tools/operators.py
@@ -145,6 +145,7 @@ class OperatorOriginToSpline0Start(bpy.types.Operator):
     bl_idname = "curvetools.operatororigintospline0start"
     bl_label = "OriginToSpline0Start"
     bl_description = "Sets the origin of the active/selected curve to the starting point of the (first) spline. Nice for curve modifiers"
+    bl_options = {'UNDO'}
 
 
     @classmethod
@@ -182,6 +183,7 @@ class OperatorIntersectCurves(bpy.types.Operator):
     bl_idname = "curvetools.operatorintersectcurves"
     bl_label = "Intersect"
     bl_description = "Intersects selected curves"
+    bl_options = {'UNDO'}
 
 
     @classmethod
@@ -233,6 +235,7 @@ class OperatorLoftCurves(bpy.types.Operator):
     bl_idname = "curvetools.operatorloftcurves"
     bl_label = "Loft"
     bl_description = "Lofts selected curves"
+    bl_options = {'UNDO'}
 
 
     @classmethod
@@ -258,6 +261,7 @@ class OperatorSweepCurves(bpy.types.Operator):
     bl_idname = "curvetools.operatorsweepcurves"
     bl_label = "Sweep"
     bl_description = "Sweeps the active curve along to other curve (rail)"
+    bl_options = {'UNDO'}
 
 
     @classmethod
@@ -283,6 +287,7 @@ class OperatorBirail(bpy.types.Operator):
     bl_idname = "curvetools.operatorbirail"
     bl_label = "Birail"
     bl_description = "Generates a birailed surface from 3 selected curves -- in order: rail1, rail2 and profile"
+    bl_options = {'UNDO'}
 
 
     @classmethod
@@ -306,6 +311,7 @@ class OperatorSplinesSetResolution(bpy.types.Operator):
     bl_idname = "curvetools.operatorsplinessetresolution"
     bl_label = "SplinesSetResolution"
     bl_description = "Sets the resolution of all splines"
+    bl_options = {'UNDO'}
 
 
     @classmethod
@@ -330,6 +336,7 @@ class OperatorSplinesRemoveZeroSegment(bpy.types.Operator):
     bl_idname = "curvetools.operatorsplinesremovezerosegment"
     bl_label = "SplinesRemoveZeroSegment"
     bl_description = "Removes splines with no segments -- they seem to creep up, sometimes"
+    bl_options = {'UNDO'}
 
 
     @classmethod
@@ -364,6 +371,7 @@ class OperatorSplinesRemoveShort(bpy.types.Operator):
     bl_idname = "curvetools.operatorsplinesremoveshort"
     bl_label = "SplinesRemoveShort"
     bl_description = "Removes splines with a length smaller than the threshold"
+    bl_options = {'UNDO'}
 
 
     @classmethod
@@ -393,6 +401,7 @@ class OperatorSplinesJoinNeighbouring(bpy.types.Operator):
     bl_idname = "curvetools.operatorsplinesjoinneighbouring"
     bl_label = "SplinesJoinNeighbouring"
     bl_description = "Joins neighbouring splines within a distance smaller than the threshold"
+    bl_options = {'UNDO'}
 
 
     @classmethod
diff --git a/curve_tools/splines_sequence.py b/curve_tools/splines_sequence.py
index 2588b5d3209e704af1442fa06bdd10783df47cf9..89b9624c9f705b02c2319f60ce28042e92cfb2a5 100644
--- a/curve_tools/splines_sequence.py
+++ b/curve_tools/splines_sequence.py
@@ -214,6 +214,7 @@ class RearrangeSpline(bpy.types.Operator):
     bl_idname = "curvetools.rearrange_spline"
     bl_label = "Rearrange Spline"
     bl_description = "Rearrange Spline"
+    bl_options = {'UNDO'}
 
     Types = [('NEXT', "Next", "next"),
              ('PREV', "Prev", "prev")]