diff --git a/Source/Plugins/GZDoomEditing/ClassicModes/CeilingAlignMode.cs b/Source/Plugins/GZDoomEditing/ClassicModes/CeilingAlignMode.cs
index ca1465d05ac824bf851d6f088dac67cebbbcb2c6..244ef15ea1edd47632036858641a9fca06ba53cd 100644
--- a/Source/Plugins/GZDoomEditing/ClassicModes/CeilingAlignMode.cs
+++ b/Source/Plugins/GZDoomEditing/ClassicModes/CeilingAlignMode.cs
@@ -53,6 +53,8 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 
 		#region ================== Variables
 
+		private ViewMode prevviewmode;
+
 		#endregion
 
 		#region ================== Properties
@@ -89,12 +91,24 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 		// Mode engages
 		public override void OnEngage()
 		{
+			prevviewmode = General.Map.Renderer2D.ViewMode;
+
 			base.OnEngage();
+			
+			General.Actions.InvokeAction("builder_viewmodeceilings");
 		}
 
 		// Mode disengages
 		public override void OnDisengage()
 		{
+			switch(prevviewmode)
+			{
+				case ViewMode.Normal: General.Actions.InvokeAction("builder_viewmodenormal"); break;
+				case ViewMode.FloorTextures: General.Actions.InvokeAction("builder_viewmodefloors"); break;
+				case ViewMode.CeilingTextures: General.Actions.InvokeAction("builder_viewmodeceilings"); break;
+				case ViewMode.Brightness: General.Actions.InvokeAction("builder_viewmodebrightness"); break;
+			}
+			
 			base.OnDisengage();
 		}
 
diff --git a/Source/Plugins/GZDoomEditing/ClassicModes/FloorAlignMode.cs b/Source/Plugins/GZDoomEditing/ClassicModes/FloorAlignMode.cs
index 59f5a5d1781d925e0b52326df4217ce43d5e10d5..789e37bf8a31b44e9978e698a1b11709e55e3318 100644
--- a/Source/Plugins/GZDoomEditing/ClassicModes/FloorAlignMode.cs
+++ b/Source/Plugins/GZDoomEditing/ClassicModes/FloorAlignMode.cs
@@ -53,6 +53,8 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 
 		#region ================== Variables
 
+		private ViewMode prevviewmode;
+
 		#endregion
 
 		#region ================== Properties
@@ -89,12 +91,24 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 		// Mode engages
 		public override void OnEngage()
 		{
+			prevviewmode = General.Map.Renderer2D.ViewMode;
+
 			base.OnEngage();
+			
+			General.Actions.InvokeAction("builder_viewmodefloors");
 		}
 
 		// Mode disengages
 		public override void OnDisengage()
 		{
+			switch(prevviewmode)
+			{
+				case ViewMode.Normal: General.Actions.InvokeAction("builder_viewmodenormal"); break;
+				case ViewMode.FloorTextures: General.Actions.InvokeAction("builder_viewmodefloors"); break;
+				case ViewMode.CeilingTextures: General.Actions.InvokeAction("builder_viewmodeceilings"); break;
+				case ViewMode.Brightness: General.Actions.InvokeAction("builder_viewmodebrightness"); break;
+			}
+			
 			base.OnDisengage();
 		}