diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs b/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs
index 954eac9d7009002a97d6ee674cb9d423b172e3fa..0b880c7bc5835143e0bc65de924a20486caeae4d 100755
--- a/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/VisualCeiling.cs
@@ -302,9 +302,11 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		{
 			//mxd
 			Sector s = GetControlSector();
+			double texsizex = General.Map.Config.ScaledFlatOffsets ? Texture.ScaledWidth : (Texture.ScaledWidth / s.Fields.GetValue("xscaleceiling", 1.0));
+			double texsizey = General.Map.Config.ScaledFlatOffsets ? Texture.ScaledHeight : (Texture.ScaledHeight / s.Fields.GetValue("yscaleceiling", 1.0));
 			s.Fields.BeforeFieldsChange();
-			double nx = (s.Fields.GetValue("xpanningceiling", 0.0) + offsetx) % (Texture.ScaledWidth / s.Fields.GetValue("xscaleceiling", 1.0));
-			double ny = (s.Fields.GetValue("ypanningceiling", 0.0) + offsety) % (Texture.ScaledHeight / s.Fields.GetValue("yscaleceiling", 1.0));
+			double nx = (s.Fields.GetValue("xpanningceiling", 0.0) + offsetx) % texsizex;
+			double ny = (s.Fields.GetValue("ypanningceiling", 0.0) + offsety) % texsizey;
 			s.Fields["xpanningceiling"] = new UniValue(UniversalType.Float, nx);
 			s.Fields["ypanningceiling"] = new UniValue(UniversalType.Float, ny);
 			s.UpdateNeeded = true;
diff --git a/Source/Plugins/BuilderModes/VisualModes/VisualFloor.cs b/Source/Plugins/BuilderModes/VisualModes/VisualFloor.cs
index 3eb3443af1123add0623307ca5c7fbf94768d1df..4141ea3e20150c37e333a5ef20b91ad82460b8c7 100755
--- a/Source/Plugins/BuilderModes/VisualModes/VisualFloor.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/VisualFloor.cs
@@ -256,9 +256,11 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		{
 			//mxd
 			Sector s = GetControlSector();
+			double texsizex = General.Map.Config.ScaledFlatOffsets ? Texture.ScaledWidth : (Texture.ScaledWidth / s.Fields.GetValue("xscalefloor", 1.0));
+			double texsizey = General.Map.Config.ScaledFlatOffsets ? Texture.ScaledHeight : (Texture.ScaledHeight / s.Fields.GetValue("yscalefloor", 1.0));
 			s.Fields.BeforeFieldsChange();
-			double nx = (s.Fields.GetValue("xpanningfloor", 0.0) + offsetx) % (Texture.ScaledWidth / s.Fields.GetValue("xscalefloor", 1.0));
-			double ny = (s.Fields.GetValue("ypanningfloor", 0.0) + offsety) % (Texture.ScaledHeight / s.Fields.GetValue("yscalefloor", 1.0));
+			double nx = (s.Fields.GetValue("xpanningfloor", 0.0) + offsetx) % texsizex;
+			double ny = (s.Fields.GetValue("ypanningfloor", 0.0) + offsety) % texsizey;
 			s.Fields["xpanningfloor"] = new UniValue(UniversalType.Float, nx);
 			s.Fields["ypanningfloor"] = new UniValue(UniversalType.Float, ny);
 			s.UpdateNeeded = true;