diff --git a/Source/Core/Windows/SectorEditFormUDMF.cs b/Source/Core/Windows/SectorEditFormUDMF.cs
index 101a243c6fad7e07ea533ba1a2ded47e24853bff..d806ead29cf6fd4c2fccff7991b1066339475865 100755
--- a/Source/Core/Windows/SectorEditFormUDMF.cs
+++ b/Source/Core/Windows/SectorEditFormUDMF.cs
@@ -1855,6 +1855,9 @@ namespace CodeImp.DoomBuilder.Windows
 			MakeUndo(); //mxd
 			Sector fs = General.GetByIndex(sectors, 0);
 
+			// biwa. Do not reset to the z position of the plane of the center of the sector anymore, since 
+			// that will result in pretty crazy values of 3D floor control sectors
+			/*
 			if (fs.CeilSlope.IsNormalized())
 			{
 				fs.UpdateBBox();
@@ -1863,15 +1866,21 @@ namespace CodeImp.DoomBuilder.Windows
 			}
 			else
 				ceilingslopecontrol.SetOffset(fs.CeilHeight, true);
+			*/
+			ceilingslopecontrol.SetOffset(fs.CeilHeight, true);
 
 			foreach (Sector s in sectors) 
 			{
+				// biwa. Do not reset to the z position of the plane of the center of the sector anymore, since 
+				// that will result in pretty crazy values of 3D floor control sectors
+				/*
 				if (s.CeilSlope.IsNormalized())
 				{
 					s.UpdateBBox();
 					Plane p = new Plane(s.CeilSlope, s.CeilSlopeOffset);
 					s.CeilHeight = (int)Math.Round(p.GetZ(s.BBox.X + s.BBox.Width / 2, s.BBox.Y + s.BBox.Height / 2));
 				}
+				*/
 
 				s.CeilSlope = new Vector3D();
 				s.CeilSlopeOffset = double.NaN;
@@ -1890,6 +1899,9 @@ namespace CodeImp.DoomBuilder.Windows
 			MakeUndo(); //mxd
 			Sector fs = General.GetByIndex(sectors, 0);
 
+			// biwa. Do not reset to the z position of the plane of the center of the sector anymore, since 
+			// that will result in pretty crazy values of 3D floor control sectors
+			/*
 			if (fs.FloorSlope.IsNormalized())
 			{
 				fs.UpdateBBox();
@@ -1898,15 +1910,22 @@ namespace CodeImp.DoomBuilder.Windows
 			}
 			else
 				floorslopecontrol.SetOffset(fs.FloorHeight, true);
+			*/
+
+			floorslopecontrol.SetOffset(fs.FloorHeight, true);
 
 			foreach (Sector s in sectors) 
 			{
+				// biwa. Do not reset to the z position of the plane of the center of the sector anymore, since 
+				// that will result in pretty crazy values of 3D floor control sectors
+				/*
 				if (s.FloorSlope.IsNormalized())
 				{
 					s.UpdateBBox();
 					Plane p = new Plane(s.FloorSlope, s.FloorSlopeOffset);
 					s.FloorHeight = (int)Math.Round(p.GetZ(s.BBox.X + s.BBox.Width / 2, s.BBox.Y + s.BBox.Height / 2));
 				}
+				*/
 
 				s.FloorSlope = new Vector3D();
 				s.FloorSlopeOffset = double.NaN;
diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
index 33aa16fcf01ff23a09fe1914226193324c396e1d..2d8d7eae788bda0801000200aafc8e422710fb28 100755
--- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
@@ -4423,7 +4423,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				if (applytoceiling)
 				{
 					// Set the ceiling height to something hopefully sensible
-					level.sector.CeilHeight = (int)Math.Round(level.plane.GetZ(level.sector.BBox.X + level.sector.BBox.Width / 2, level.sector.BBox.Y + level.sector.BBox.Height / 2));
+					// biwa. Do not reset to the z position of the plane of the center of the sector anymore, since 
+					// that will result in pretty crazy values of 3D floor control sectors
+					//level.sector.CeilHeight = (int)Math.Round(level.plane.GetZ(level.sector.BBox.X + level.sector.BBox.Width / 2, level.sector.BBox.Y + level.sector.BBox.Height / 2));
 
 					level.sector.CeilSlopeOffset = double.NaN;
 					level.sector.CeilSlope = new Vector3D();
@@ -4432,7 +4434,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				else
 				{
 					// Set the floor height to something hopefully sensible
-					level.sector.FloorHeight = (int)Math.Round(level.plane.GetZ(level.sector.BBox.X + level.sector.BBox.Width / 2, level.sector.BBox.Y + level.sector.BBox.Height / 2));
+					// biwa. Do not reset to the z position of the plane of the center of the sector anymore, since 
+					// that will result in pretty crazy values of 3D floor control sectors
+					//level.sector.FloorHeight = (int)Math.Round(level.plane.GetZ(level.sector.BBox.X + level.sector.BBox.Width / 2, level.sector.BBox.Y + level.sector.BBox.Height / 2));
 
 					level.sector.FloorSlopeOffset = double.NaN;
 					level.sector.FloorSlope = new Vector3D();