diff --git a/Source/Core/Windows/ThingEditForm.cs b/Source/Core/Windows/ThingEditForm.cs
index 1ebc5fe50d190b5d34c4bb68ae59d09d731a7ccd..4ead8c5cf8bda68684140cd168c0954520b73b44 100644
--- a/Source/Core/Windows/ThingEditForm.cs
+++ b/Source/Core/Windows/ThingEditForm.cs
@@ -345,7 +345,7 @@ namespace CodeImp.DoomBuilder.Windows
 			}
 
 			// Verify the type
-			if(((thingtype.GetResult(0) < General.Map.FormatInterface.MinThingType) || (thingtype.GetResult(0) > General.Map.FormatInterface.MaxThingType)))
+			if(!string.IsNullOrEmpty(thingtype.TypeStringValue) && ((thingtype.GetResult(0) < General.Map.FormatInterface.MinThingType) || (thingtype.GetResult(0) > General.Map.FormatInterface.MaxThingType)))
 			{
 				General.ShowWarningMessage("Thing type must be between " + General.Map.FormatInterface.MinThingType + " and " + General.Map.FormatInterface.MaxThingType + ".", MessageBoxButtons.OK);
 				return;
@@ -543,12 +543,14 @@ namespace CodeImp.DoomBuilder.Windows
 			action_ValueChanges(this, EventArgs.Empty);
 
 			//mxd. Update things
-			if(preventchanges) return;
-			MakeUndo(); //mxd
-
-			if(((thingtype.GetResult(0) < General.Map.FormatInterface.MinThingType) || (thingtype.GetResult(0) > General.Map.FormatInterface.MaxThingType)))
+			if(preventchanges ||
+					(!string.IsNullOrEmpty(thingtype.TypeStringValue) &&
+					thingtype.GetResult(0) < General.Map.FormatInterface.MinThingType
+					|| thingtype.GetResult(0) > General.Map.FormatInterface.MaxThingType))
 				return;
 
+			MakeUndo(); //mxd
+
 			foreach(Thing t in things) 
 			{
 				//Set type
diff --git a/Source/Core/Windows/ThingEditFormUDMF.cs b/Source/Core/Windows/ThingEditFormUDMF.cs
index 7a042f01a2bb57531a7d8799fbda4e82bf4da800..832770f16071bb683716ca6faa9303fa4fa364d8 100644
--- a/Source/Core/Windows/ThingEditFormUDMF.cs
+++ b/Source/Core/Windows/ThingEditFormUDMF.cs
@@ -442,7 +442,7 @@ namespace CodeImp.DoomBuilder.Windows
 			}
 
 			// Verify the type
-			if(((thingtype.GetResult(0) < General.Map.FormatInterface.MinThingType) || (thingtype.GetResult(0) > General.Map.FormatInterface.MaxThingType))) 
+			if(!string.IsNullOrEmpty(thingtype.TypeStringValue) && ((thingtype.GetResult(0) < General.Map.FormatInterface.MinThingType) || (thingtype.GetResult(0) > General.Map.FormatInterface.MaxThingType))) 
 			{
 				General.ShowWarningMessage("Thing type must be between " + General.Map.FormatInterface.MinThingType + " and " + General.Map.FormatInterface.MaxThingType + ".", MessageBoxButtons.OK);
 				return;
@@ -684,9 +684,10 @@ namespace CodeImp.DoomBuilder.Windows
 			action_ValueChanges(this, EventArgs.Empty);
 
 			//mxd. Update things
-			if(preventchanges 
-					|| (thingtype.GetResult(0) < General.Map.FormatInterface.MinThingType) 
-					|| (thingtype.GetResult(0) > General.Map.FormatInterface.MaxThingType))
+			if(preventchanges ||
+					(!string.IsNullOrEmpty(thingtype.TypeStringValue) && 
+					thingtype.GetResult(0) < General.Map.FormatInterface.MinThingType 
+					|| thingtype.GetResult(0) > General.Map.FormatInterface.MaxThingType))
 				return;
 
 			MakeUndo(); //mxd