diff --git a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
index dc936614138d07269bdbb9392e57d648085cf083..a37619fd86f9d0b5865c5930614dafce0554d641 100644
--- a/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
+++ b/Source/Plugins/BuilderModes/VisualModes/BaseVisualMode.cs
@@ -588,11 +588,11 @@ namespace CodeImp.DoomBuilder.BuilderModes
 					// easily determine which ones changed, we dispose all things
 					foreach(KeyValuePair<Thing, VisualThing> vt in allthings)
 						vt.Value.Dispose();
+					
+					// Apply new lists
+					allthings = new Dictionary<Thing, VisualThing>(allthings.Count);
 				}
 				
-				// Apply new lists
-				allthings = new Dictionary<Thing, VisualThing>(allthings.Count);
-				
 				// Clear visibility collections
 				visiblesectors.Clear();
 				visibleblocks.Clear();
@@ -600,7 +600,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				visiblethings.Clear();
 				
 				// Make new blockmap
-				FillBlockMap();
+				if(sectorsmarked)
+					FillBlockMap();
 				
 				// Visibility culling (this re-creates the needed resources)
 				DoCulling();