diff --git a/Source/Core/Config/ProgramConfiguration.cs b/Source/Core/Config/ProgramConfiguration.cs
index fbe4550c7fafc2588469fa27b8c7183a0b801fce..35bb141dc4a7c6134bccebc534c2bdcdd5b567f2 100644
--- a/Source/Core/Config/ProgramConfiguration.cs
+++ b/Source/Core/Config/ProgramConfiguration.cs
@@ -104,6 +104,7 @@ namespace CodeImp.DoomBuilder.Config
         private bool gzToolbarGZDoom;
         private bool gzSynchCameras;
         private bool gzShowEventLines;
+        private bool gzOldHighlightMode;
         private int gzMaxDynamicLights;
         private float gzDynamicLightRadius;
         private float gzDynamicLightIntensity;
@@ -184,6 +185,7 @@ namespace CodeImp.DoomBuilder.Config
         public bool GZSynchCameras { get { return gzSynchCameras; } internal set { gzSynchCameras = value; } }
         public bool GZShowEventLines { get { return gzShowEventLines; } internal set { gzShowEventLines = value; } }
         public bool GZTestFromCurrentPosition { get { return gzTestFromCurrentPosition; } internal set { gzTestFromCurrentPosition = value; } }
+        public bool GZOldHighlightMode { get { return gzOldHighlightMode; } internal set { gzOldHighlightMode = value; } }
         public int GZMaxDynamicLights { get { return gzMaxDynamicLights; } internal set { gzMaxDynamicLights = value; } }
         public float GZDynamicLightRadius { get { return gzDynamicLightRadius; } internal set { gzDynamicLightRadius = value; } }
         public float GZDynamicLightIntensity { get { return gzDynamicLightIntensity; } internal set { gzDynamicLightIntensity = value; } }
@@ -279,6 +281,7 @@ namespace CodeImp.DoomBuilder.Config
                 gzToolbarGZDoom = cfg.ReadSetting("gztoolbargzdoom", true);
                 gzSynchCameras = cfg.ReadSetting("gzsynchcameras", true);
                 gzShowEventLines = cfg.ReadSetting("gzshoweventlines", true);
+                gzOldHighlightMode = cfg.ReadSetting("gzoldhighlightmode", false);
                 gzMaxDynamicLights = cfg.ReadSetting("gzmaxdynamiclights", 16);
                 gzDynamicLightRadius = cfg.ReadSetting("gzdynamiclightradius", 1.0f);
                 gzDynamicLightIntensity = cfg.ReadSetting("gzdynamiclightintensity", 1.0f);
@@ -355,6 +358,7 @@ namespace CodeImp.DoomBuilder.Config
             cfg.WriteSetting("gzdrawfog", gzDrawFog);
             cfg.WriteSetting("gzsynchcameras", gzSynchCameras);
             cfg.WriteSetting("gzshoweventlines", gzShowEventLines);
+            cfg.WriteSetting("gzoldhighlightmode", gzOldHighlightMode);
             cfg.WriteSetting("gztoolbargzdoom", gzToolbarGZDoom);
             cfg.WriteSetting("gzmaxdynamiclights", gzMaxDynamicLights);
             cfg.WriteSetting("gzdynamiclightradius", gzDynamicLightRadius);
diff --git a/Source/Core/Windows/PreferencesForm.Designer.cs b/Source/Core/Windows/PreferencesForm.Designer.cs
index 19ea86d96a074f0c970084b8cc82224568fe9ffb..81fa343714a6a13afd1590751cdc29afcd5ba18b 100644
--- a/Source/Core/Windows/PreferencesForm.Designer.cs
+++ b/Source/Core/Windows/PreferencesForm.Designer.cs
@@ -57,6 +57,7 @@ namespace CodeImp.DoomBuilder.Windows
             this.defaultviewmode = new System.Windows.Forms.ComboBox();
             this.keyusedlabel = new System.Windows.Forms.Label();
             this.colorsgroup1 = new System.Windows.Forms.GroupBox();
+            this.colorInfo = new CodeImp.DoomBuilder.Controls.ColorControl();
             this.cbStretchModels = new System.Windows.Forms.CheckBox();
             this.colorMD3 = new CodeImp.DoomBuilder.Controls.ColorControl();
             this.label2 = new System.Windows.Forms.Label();
@@ -155,7 +156,7 @@ namespace CodeImp.DoomBuilder.Windows
             this.label16 = new System.Windows.Forms.Label();
             this.pasteoptions = new CodeImp.DoomBuilder.Controls.PasteOptionsControl();
             this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
-            this.colorInfo = new CodeImp.DoomBuilder.Controls.ColorControl();
+            this.cbOldHighlightMode = new System.Windows.Forms.CheckBox();
             label7 = new System.Windows.Forms.Label();
             label6 = new System.Windows.Forms.Label();
             label5 = new System.Windows.Forms.Label();
@@ -499,6 +500,18 @@ namespace CodeImp.DoomBuilder.Windows
             this.colorsgroup1.Text = " Display ";
             this.colorsgroup1.Visible = false;
             // 
+            // colorInfo
+            // 
+            this.colorInfo.BackColor = System.Drawing.Color.Transparent;
+            this.colorInfo.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+            this.colorInfo.Label = "Event lines:";
+            this.colorInfo.Location = new System.Drawing.Point(15, 324);
+            this.colorInfo.MaximumSize = new System.Drawing.Size(10000, 23);
+            this.colorInfo.MinimumSize = new System.Drawing.Size(100, 23);
+            this.colorInfo.Name = "colorInfo";
+            this.colorInfo.Size = new System.Drawing.Size(168, 23);
+            this.colorInfo.TabIndex = 19;
+            // 
             // cbStretchModels
             // 
             this.cbStretchModels.AutoSize = true;
@@ -1237,6 +1250,7 @@ namespace CodeImp.DoomBuilder.Windows
             this.appearancegroup1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                         | System.Windows.Forms.AnchorStyles.Left)
                         | System.Windows.Forms.AnchorStyles.Right)));
+            this.appearancegroup1.Controls.Add(this.cbOldHighlightMode);
             this.appearancegroup1.Controls.Add(label21);
             this.appearancegroup1.Controls.Add(this.labelDynLightIntensity);
             this.appearancegroup1.Controls.Add(this.tbDynLightIntensity);
@@ -1253,9 +1267,9 @@ namespace CodeImp.DoomBuilder.Windows
             this.appearancegroup1.Controls.Add(this.classicbilinear);
             this.appearancegroup1.Controls.Add(this.imagebrightnesslabel);
             this.appearancegroup1.Controls.Add(this.imagebrightness);
-            this.appearancegroup1.Location = new System.Drawing.Point(217, 236);
+            this.appearancegroup1.Location = new System.Drawing.Point(217, 224);
             this.appearancegroup1.Name = "appearancegroup1";
-            this.appearancegroup1.Size = new System.Drawing.Size(457, 265);
+            this.appearancegroup1.Size = new System.Drawing.Size(457, 277);
             this.appearancegroup1.TabIndex = 24;
             this.appearancegroup1.TabStop = false;
             this.appearancegroup1.Text = " Additional Options ";
@@ -1329,7 +1343,7 @@ namespace CodeImp.DoomBuilder.Windows
             // animatevisualselection
             // 
             this.animatevisualselection.AutoSize = true;
-            this.animatevisualselection.Location = new System.Drawing.Point(244, 236);
+            this.animatevisualselection.Location = new System.Drawing.Point(236, 233);
             this.animatevisualselection.Name = "animatevisualselection";
             this.animatevisualselection.Size = new System.Drawing.Size(188, 18);
             this.animatevisualselection.TabIndex = 23;
@@ -1339,7 +1353,7 @@ namespace CodeImp.DoomBuilder.Windows
             // blackbrowsers
             // 
             this.blackbrowsers.AutoSize = true;
-            this.blackbrowsers.Location = new System.Drawing.Point(244, 212);
+            this.blackbrowsers.Location = new System.Drawing.Point(236, 212);
             this.blackbrowsers.Name = "blackbrowsers";
             this.blackbrowsers.Size = new System.Drawing.Size(199, 18);
             this.blackbrowsers.TabIndex = 4;
@@ -1349,7 +1363,7 @@ namespace CodeImp.DoomBuilder.Windows
             // visualbilinear
             // 
             this.visualbilinear.AutoSize = true;
-            this.visualbilinear.Location = new System.Drawing.Point(25, 236);
+            this.visualbilinear.Location = new System.Drawing.Point(25, 233);
             this.visualbilinear.Name = "visualbilinear";
             this.visualbilinear.Size = new System.Drawing.Size(176, 18);
             this.visualbilinear.TabIndex = 6;
@@ -1407,7 +1421,7 @@ namespace CodeImp.DoomBuilder.Windows
             this.colorsgroup3.Controls.Add(this.colorplaintext);
             this.colorsgroup3.Location = new System.Drawing.Point(217, 8);
             this.colorsgroup3.Name = "colorsgroup3";
-            this.colorsgroup3.Size = new System.Drawing.Size(457, 222);
+            this.colorsgroup3.Size = new System.Drawing.Size(457, 212);
             this.colorsgroup3.TabIndex = 1;
             this.colorsgroup3.TabStop = false;
             this.colorsgroup3.Text = " Script editor ";
@@ -1419,7 +1433,7 @@ namespace CodeImp.DoomBuilder.Windows
             this.scripttabwidth.AllowNegative = false;
             this.scripttabwidth.AllowRelative = false;
             this.scripttabwidth.ButtonStep = 2;
-            this.scripttabwidth.Location = new System.Drawing.Point(259, 165);
+            this.scripttabwidth.Location = new System.Drawing.Point(259, 155);
             this.scripttabwidth.Name = "scripttabwidth";
             this.scripttabwidth.Size = new System.Drawing.Size(71, 24);
             this.scripttabwidth.StepValues = null;
@@ -1428,7 +1442,7 @@ namespace CodeImp.DoomBuilder.Windows
             // scriptautoindent
             // 
             this.scriptautoindent.AutoSize = true;
-            this.scriptautoindent.Location = new System.Drawing.Point(354, 169);
+            this.scriptautoindent.Location = new System.Drawing.Point(354, 159);
             this.scriptautoindent.Name = "scriptautoindent";
             this.scriptautoindent.Size = new System.Drawing.Size(81, 18);
             this.scriptautoindent.TabIndex = 31;
@@ -1438,7 +1452,7 @@ namespace CodeImp.DoomBuilder.Windows
             // label10
             // 
             this.label10.AutoSize = true;
-            this.label10.Location = new System.Drawing.Point(199, 170);
+            this.label10.Location = new System.Drawing.Point(199, 160);
             this.label10.Name = "label10";
             this.label10.Size = new System.Drawing.Size(57, 14);
             this.label10.TabIndex = 30;
@@ -1487,7 +1501,7 @@ namespace CodeImp.DoomBuilder.Windows
             "36",
             "48",
             "72"});
-            this.scriptfontsize.Location = new System.Drawing.Point(236, 67);
+            this.scriptfontsize.Location = new System.Drawing.Point(236, 57);
             this.scriptfontsize.Name = "scriptfontsize";
             this.scriptfontsize.Size = new System.Drawing.Size(94, 22);
             this.scriptfontsize.TabIndex = 25;
@@ -1495,7 +1509,7 @@ namespace CodeImp.DoomBuilder.Windows
             // label8
             // 
             this.label8.AutoSize = true;
-            this.label8.Location = new System.Drawing.Point(199, 70);
+            this.label8.Location = new System.Drawing.Point(199, 60);
             this.label8.Name = "label8";
             this.label8.Size = new System.Drawing.Size(31, 14);
             this.label8.TabIndex = 28;
@@ -1504,7 +1518,7 @@ namespace CodeImp.DoomBuilder.Windows
             // scriptfontbold
             // 
             this.scriptfontbold.AutoSize = true;
-            this.scriptfontbold.Location = new System.Drawing.Point(354, 69);
+            this.scriptfontbold.Location = new System.Drawing.Point(354, 59);
             this.scriptfontbold.Name = "scriptfontbold";
             this.scriptfontbold.Size = new System.Drawing.Size(47, 18);
             this.scriptfontbold.TabIndex = 26;
@@ -1515,7 +1529,7 @@ namespace CodeImp.DoomBuilder.Windows
             // 
             this.scriptfontname.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
             this.scriptfontname.FormattingEnabled = true;
-            this.scriptfontname.Location = new System.Drawing.Point(236, 27);
+            this.scriptfontname.Location = new System.Drawing.Point(236, 17);
             this.scriptfontname.Name = "scriptfontname";
             this.scriptfontname.Size = new System.Drawing.Size(199, 22);
             this.scriptfontname.Sorted = true;
@@ -1524,7 +1538,7 @@ namespace CodeImp.DoomBuilder.Windows
             // label3
             // 
             this.label3.AutoSize = true;
-            this.label3.Location = new System.Drawing.Point(199, 30);
+            this.label3.Location = new System.Drawing.Point(199, 20);
             this.label3.Name = "label3";
             this.label3.Size = new System.Drawing.Size(31, 14);
             this.label3.TabIndex = 24;
@@ -1535,7 +1549,7 @@ namespace CodeImp.DoomBuilder.Windows
             this.colorconstants.BackColor = System.Drawing.Color.Transparent;
             this.colorconstants.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.colorconstants.Label = "Constants:";
-            this.colorconstants.Location = new System.Drawing.Point(15, 189);
+            this.colorconstants.Location = new System.Drawing.Point(15, 179);
             this.colorconstants.MaximumSize = new System.Drawing.Size(10000, 23);
             this.colorconstants.MinimumSize = new System.Drawing.Size(100, 23);
             this.colorconstants.Name = "colorconstants";
@@ -1547,7 +1561,7 @@ namespace CodeImp.DoomBuilder.Windows
             this.colorliterals.BackColor = System.Drawing.Color.Transparent;
             this.colorliterals.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.colorliterals.Label = "Literals:";
-            this.colorliterals.Location = new System.Drawing.Point(15, 162);
+            this.colorliterals.Location = new System.Drawing.Point(15, 152);
             this.colorliterals.MaximumSize = new System.Drawing.Size(10000, 23);
             this.colorliterals.MinimumSize = new System.Drawing.Size(100, 23);
             this.colorliterals.Name = "colorliterals";
@@ -1559,7 +1573,7 @@ namespace CodeImp.DoomBuilder.Windows
             this.colorscriptbackground.BackColor = System.Drawing.Color.Transparent;
             this.colorscriptbackground.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.colorscriptbackground.Label = "Background:";
-            this.colorscriptbackground.Location = new System.Drawing.Point(15, 27);
+            this.colorscriptbackground.Location = new System.Drawing.Point(15, 17);
             this.colorscriptbackground.MaximumSize = new System.Drawing.Size(10000, 23);
             this.colorscriptbackground.MinimumSize = new System.Drawing.Size(100, 23);
             this.colorscriptbackground.Name = "colorscriptbackground";
@@ -1571,7 +1585,7 @@ namespace CodeImp.DoomBuilder.Windows
             this.colorkeywords.BackColor = System.Drawing.Color.Transparent;
             this.colorkeywords.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.colorkeywords.Label = "Keywords:";
-            this.colorkeywords.Location = new System.Drawing.Point(15, 135);
+            this.colorkeywords.Location = new System.Drawing.Point(15, 125);
             this.colorkeywords.MaximumSize = new System.Drawing.Size(10000, 23);
             this.colorkeywords.MinimumSize = new System.Drawing.Size(100, 23);
             this.colorkeywords.Name = "colorkeywords";
@@ -1583,7 +1597,7 @@ namespace CodeImp.DoomBuilder.Windows
             this.colorlinenumbers.BackColor = System.Drawing.Color.Transparent;
             this.colorlinenumbers.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.colorlinenumbers.Label = "Line numbers:";
-            this.colorlinenumbers.Location = new System.Drawing.Point(15, 54);
+            this.colorlinenumbers.Location = new System.Drawing.Point(15, 44);
             this.colorlinenumbers.MaximumSize = new System.Drawing.Size(10000, 23);
             this.colorlinenumbers.MinimumSize = new System.Drawing.Size(100, 23);
             this.colorlinenumbers.Name = "colorlinenumbers";
@@ -1595,7 +1609,7 @@ namespace CodeImp.DoomBuilder.Windows
             this.colorcomments.BackColor = System.Drawing.Color.Transparent;
             this.colorcomments.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.colorcomments.Label = "Comments:";
-            this.colorcomments.Location = new System.Drawing.Point(15, 108);
+            this.colorcomments.Location = new System.Drawing.Point(15, 98);
             this.colorcomments.MaximumSize = new System.Drawing.Size(10000, 23);
             this.colorcomments.MinimumSize = new System.Drawing.Size(100, 23);
             this.colorcomments.Name = "colorcomments";
@@ -1607,7 +1621,7 @@ namespace CodeImp.DoomBuilder.Windows
             this.colorplaintext.BackColor = System.Drawing.Color.Transparent;
             this.colorplaintext.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
             this.colorplaintext.Label = "Plain text:";
-            this.colorplaintext.Location = new System.Drawing.Point(15, 81);
+            this.colorplaintext.Location = new System.Drawing.Point(15, 71);
             this.colorplaintext.MaximumSize = new System.Drawing.Size(10000, 23);
             this.colorplaintext.MinimumSize = new System.Drawing.Size(100, 23);
             this.colorplaintext.Name = "colorplaintext";
@@ -1649,17 +1663,17 @@ namespace CodeImp.DoomBuilder.Windows
             this.pasteoptions.Size = new System.Drawing.Size(666, 427);
             this.pasteoptions.TabIndex = 0;
             // 
-            // colorInfo
+            // cbOldHighlightMode
             // 
-            this.colorInfo.BackColor = System.Drawing.Color.Transparent;
-            this.colorInfo.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.colorInfo.Label = "Event lines:";
-            this.colorInfo.Location = new System.Drawing.Point(15, 324);
-            this.colorInfo.MaximumSize = new System.Drawing.Size(10000, 23);
-            this.colorInfo.MinimumSize = new System.Drawing.Size(100, 23);
-            this.colorInfo.Name = "colorInfo";
-            this.colorInfo.Size = new System.Drawing.Size(168, 23);
-            this.colorInfo.TabIndex = 19;
+            this.cbOldHighlightMode.AutoSize = true;
+            this.cbOldHighlightMode.Location = new System.Drawing.Point(236, 254);
+            this.cbOldHighlightMode.Name = "cbOldHighlightMode";
+            this.cbOldHighlightMode.Size = new System.Drawing.Size(218, 18);
+            this.cbOldHighlightMode.TabIndex = 33;
+            this.cbOldHighlightMode.Text = "Always show selection in visual modes";
+            this.toolTip1.SetToolTip(this.cbOldHighlightMode, "If enabled, selected surfaces will be highlighted in visual modes\r\neven if \"Show " +
+                    "highlight\" mode is disabled \r\n(Doom Builder 2 behaviour).");
+            this.cbOldHighlightMode.UseVisualStyleBackColor = true;
             // 
             // PreferencesForm
             // 
@@ -1841,5 +1855,6 @@ namespace CodeImp.DoomBuilder.Windows
         private System.Windows.Forms.Label vertexScaleLabel;
         private System.Windows.Forms.Label label22;
         private CodeImp.DoomBuilder.Controls.ColorControl colorInfo;
+        private System.Windows.Forms.CheckBox cbOldHighlightMode;
 	}
 }
\ No newline at end of file
diff --git a/Source/Core/Windows/PreferencesForm.cs b/Source/Core/Windows/PreferencesForm.cs
index b7230cd81ccf32322a3371011c98bf4d7ccb7348..92feec7605ec68a10a7845fe9d136de877aa3d67 100644
--- a/Source/Core/Windows/PreferencesForm.cs
+++ b/Source/Core/Windows/PreferencesForm.cs
@@ -104,6 +104,7 @@ namespace CodeImp.DoomBuilder.Windows
             tbDynLightIntensity.Value = General.Clamp((int)(General.Settings.GZDynamicLightIntensity * 10), tbDynLightIntensity.Minimum, tbDynLightIntensity.Maximum);
             labelDynLightIntensity.Text = General.Settings.GZDynamicLightIntensity.ToString();
 			cbStretchModels.Checked = General.Settings.GZStretchModels;
+            cbOldHighlightMode.Checked = General.Settings.GZOldHighlightMode;
             vertexScale.Value = General.Clamp((int)(General.Settings.GZVertexScale2D), vertexScale.Minimum, vertexScale.Maximum);
             vertexScaleLabel.Text = vertexScale.Value * 100 + "%" + (vertexScale.Value == 1 ? " (default)" : "");
 			
@@ -281,7 +282,8 @@ namespace CodeImp.DoomBuilder.Windows
             General.Settings.GZDynamicLightIntensity = ((float)tbDynLightIntensity.Value / 10.0f);
 			General.Settings.GZStretchModels = cbStretchModels.Checked;
             General.Settings.GZVertexScale2D = (float)vertexScale.Value;
-			
+            General.Settings.GZOldHighlightMode = cbOldHighlightMode.Checked;
+
 			// Paste options
 			General.Settings.PasteOptions = pasteoptions.GetOptions();
 			
diff --git a/Source/Core/Windows/PreferencesForm.resx b/Source/Core/Windows/PreferencesForm.resx
index d68fbbd5f3f982f9dd2faed7b6eb44bc6555c890..983bf1dcab2bce362c61c860f6715019afb1dcbc 100644
--- a/Source/Core/Windows/PreferencesForm.resx
+++ b/Source/Core/Windows/PreferencesForm.resx
@@ -144,4 +144,7 @@
   <metadata name="label21.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
     <value>False</value>
   </metadata>
+  <metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
+    <value>17, 17</value>
+  </metadata>
 </root>
\ No newline at end of file
diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
index ee2da3ccf6709a1623408f168bdb0ba81bc7ec6f..bb7d89cd20c609a119aeadf5b9b4e101fc52449e 100644
--- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
@@ -613,7 +613,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				renderer.SetFogMode(true);
 
 				// Set target for highlighting
-                renderer.ShowSelection = BuilderPlug.Me.UseHighlight; //mxd
+                renderer.ShowSelection = General.Settings.GZOldHighlightMode || BuilderPlug.Me.UseHighlight; //mxd
 
                 if (BuilderPlug.Me.UseHighlight)
                     renderer.SetHighlightedObject(target.picked);
diff --git a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualMode.cs b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualMode.cs
index b58d33a7721f587f52142adc9264bf225097dc71..4fdb39c23d19be651030a55ffe4b296a95118ee0 100644
--- a/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualMode.cs
+++ b/Source/Plugins/GZDoomEditing/VisualModes/BaseVisualMode.cs
@@ -828,7 +828,7 @@ namespace CodeImp.DoomBuilder.GZDoomEditing
 				renderer.SetFogMode(true);
 
 				// Set target for highlighting
-                renderer.ShowSelection = BuilderPlug.Me.UseHighlight; //mxd
+                renderer.ShowSelection = General.Settings.GZOldHighlightMode || BuilderPlug.Me.UseHighlight; //mxd
 
 				if(BuilderPlug.Me.UseHighlight)
 					renderer.SetHighlightedObject(target.picked);