diff --git a/Source/Core/Config/ProgramConfiguration.cs b/Source/Core/Config/ProgramConfiguration.cs
index c8263f67778f2e2c6c7e9b1552f861fbce66e3c5..264a5c33ac42fa8e26469e165ec0eb0a2c584de0 100644
--- a/Source/Core/Config/ProgramConfiguration.cs
+++ b/Source/Core/Config/ProgramConfiguration.cs
@@ -545,13 +545,13 @@ namespace CodeImp.DoomBuilder.Config
 			if(General.Map == null) return;
 			
 			// Default texture missing?
-			if((defaulttexture == null) || defaulttexture.StartsWith("-"))
+			if(defaulttexture == null || (!gzForceDefaultTextures && defaulttexture == "-")) //mxd
 			{
 				// Find default texture from map
 				foundone = false;
 				foreach(Sidedef sd in General.Map.Map.Sidedefs)
 				{
-					if(!sd.MiddleTexture.StartsWith("-"))
+					if(sd.MiddleTexture != "-")
 					{
 						defaulttexture = sd.MiddleTexture;
 						if(General.Map.Data.GetTextureExists(defaulttexture))
diff --git a/Source/Core/Controls/ImageSelectorControl.cs b/Source/Core/Controls/ImageSelectorControl.cs
index d58520c4cd54c873b857f64b036de33b1fd7493e..07997a93fce9872a3e960510519d26eeba5290de 100644
--- a/Source/Core/Controls/ImageSelectorControl.cs
+++ b/Source/Core/Controls/ImageSelectorControl.cs
@@ -37,7 +37,6 @@ namespace CodeImp.DoomBuilder.Controls
 		private Bitmap bmp;
 		private bool ismouseinside;
 		private MouseButtons button;
-		protected bool allowclear;
 		private string previousImageName; //mxd
 		
 		#endregion
@@ -92,7 +91,7 @@ namespace CodeImp.DoomBuilder.Controls
 			ShowPreview(FindImage(name.Text));
 			if(button == MouseButtons.Right)
 			{
-				if(allowclear) name.Text = "-";
+				name.Text = "-";
 			}
 			else if(button == MouseButtons.Left)
 			{
@@ -111,7 +110,7 @@ namespace CodeImp.DoomBuilder.Controls
 		private void preview_MouseDown(object sender, MouseEventArgs e)
 		{
 			button = e.Button;
-			if((button == MouseButtons.Left) || ((button == MouseButtons.Right) && allowclear))
+			if((button == MouseButtons.Left) || ((button == MouseButtons.Right)))
 			{
 				//ispressed = true;
 				preview.BackColor = AdjustedColor(SystemColors.Highlight, 0.2f);
diff --git a/Source/Core/Controls/TextureSelectorControl.cs b/Source/Core/Controls/TextureSelectorControl.cs
index 42a3d8d2e3c71ad0ca11b7dc839f95bbcf5de4ec..fa43f0197092884fe15fe7b92ef851b8d7f75e26 100644
--- a/Source/Core/Controls/TextureSelectorControl.cs
+++ b/Source/Core/Controls/TextureSelectorControl.cs
@@ -39,7 +39,6 @@ namespace CodeImp.DoomBuilder.Controls
 			
 			// Fill autocomplete list
 			name.AutoCompleteCustomSource.AddRange(General.Map.Data.TextureNames.ToArray());
-			allowclear = true;
 		}
 		
 		// This finds the image we need for the given texture name
diff --git a/Source/Core/Windows/SetDefaultTexturesForm.cs b/Source/Core/Windows/SetDefaultTexturesForm.cs
index 69c6b72148e7e73a03e457351b8e81f3d7b9bc88..a40edc3c0b1942af11652e77a9241f9f01222efd 100644
--- a/Source/Core/Windows/SetDefaultTexturesForm.cs
+++ b/Source/Core/Windows/SetDefaultTexturesForm.cs
@@ -27,15 +27,9 @@ namespace CodeImp.DoomBuilder.Windows
 		}
 
 		private void bApply_Click(object sender, EventArgs e) {
-			if(General.Map.Data.GetTextureExists(ceiling.TextureName))
-				General.Settings.DefaultCeilingTexture = ceiling.TextureName;
-
-			if(General.Map.Data.GetTextureExists(floor.TextureName))
-				General.Settings.DefaultFloorTexture = floor.TextureName;
-
-			if(General.Map.Data.GetTextureExists(walls.TextureName))
-				General.Settings.DefaultTexture = walls.TextureName;
-
+			General.Settings.DefaultCeilingTexture = string.IsNullOrEmpty(ceiling.TextureName) ? "-" : ceiling.TextureName;
+			General.Settings.DefaultFloorTexture = string.IsNullOrEmpty(floor.TextureName) ? "-" : floor.TextureName;
+			General.Settings.DefaultTexture = string.IsNullOrEmpty(walls.TextureName) ? "-" : walls.TextureName;
 			General.Settings.GZForceDefaultTextures = cbForceDefault.Checked;
 			Close();
 		}