diff --git a/Source/BuilderModes/ClassicModes/BaseClassicMode.cs b/Source/BuilderModes/ClassicModes/BaseClassicMode.cs
index dcd46dfe..ec5b5071 100644
--- a/Source/BuilderModes/ClassicModes/BaseClassicMode.cs
+++ b/Source/BuilderModes/ClassicModes/BaseClassicMode.cs
@@ -139,6 +139,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			// Mouse must be inside window
 			if(!mouseinside) return;
 			
+			General.Interface.DisplayStatus(StatusType.Action, "Places Visual Mode camera start thing.");
+			
 			// Go for all things
 			List<Thing> things = new List<Thing>(General.Map.Map.Things);
 			foreach(Thing t in things)
diff --git a/Source/BuilderModes/ClassicModes/BrightnessMode.cs b/Source/BuilderModes/ClassicModes/BrightnessMode.cs
index 51fdf7f3..4db420f4 100644
--- a/Source/BuilderModes/ClassicModes/BrightnessMode.cs
+++ b/Source/BuilderModes/ClassicModes/BrightnessMode.cs
@@ -754,6 +754,9 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		[BeginAction("gradientbrightness")]
 		public void MakeGradientBrightness()
 		{
+			General.Interface.DisplayStatus(StatusType.Action, "Created gradient brightness over selected sectors.");
+			General.Map.UndoRedo.CreateUndo("Gradient brightness");
+			
 			// Need at least 3 selected sectors
 			// The first and last are not modified
 			if(orderedselection.Count > 2)
@@ -774,6 +777,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			// Update
 			UpdateOverlay();
 			renderer.Present();
+			General.Map.IsChanged = true;
 		}
 		
 		// This clears the selection
diff --git a/Source/BuilderModes/ClassicModes/DrawGeometryMode.cs b/Source/BuilderModes/ClassicModes/DrawGeometryMode.cs
index e6475171..8a5bee96 100644
--- a/Source/BuilderModes/ClassicModes/DrawGeometryMode.cs
+++ b/Source/BuilderModes/ClassicModes/DrawGeometryMode.cs
@@ -391,7 +391,17 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			{
 				// Make undo for the draw
 				General.Map.UndoRedo.CreateUndo("Line draw");
-
+				
+				// Make an analysis and show info
+				string[] adjectives = new string[]
+				{ "beautiful", "lovely", "romantic", "stylish", "cheerful", "comical",
+				  "awesome", "accurate", "adorable", "adventurous", "attractive", "cute",
+				  "elegant", "glamorous", "gorgeous", "handsome", "magnificent", "unusual",
+				  "outstanding", "mysterious", "amusing", "charming", "fantastic", "jolly" };
+				string word = adjectives[points.Count % adjectives.Length];
+				string very = (points.Count > adjectives.Length) ? "very " : "";
+				General.Interface.DisplayStatus(StatusType.Action, "Created a " + very + word + " drawing.");
+				
 				// Make the drawing
 				Tools.DrawLines(points);
 				
diff --git a/Source/BuilderModes/ClassicModes/LinedefsMode.cs b/Source/BuilderModes/ClassicModes/LinedefsMode.cs
index eb18f7da..f84f9bee 100644
--- a/Source/BuilderModes/ClassicModes/LinedefsMode.cs
+++ b/Source/BuilderModes/ClassicModes/LinedefsMode.cs
@@ -550,9 +550,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			{
 				// Make undo
 				if(selected.Count > 1)
+				{
 					General.Map.UndoRedo.CreateUndo("Delete " + selected.Count + " linedefs");
+					General.Interface.DisplayStatus(StatusType.Action, "Deleted " + selected.Count + " linedefs.");
+				}
 				else
+				{
 					General.Map.UndoRedo.CreateUndo("Delete linedef");
+					General.Interface.DisplayStatus(StatusType.Action, "Deleted a linedef.");
+				}
 				
 				// Dispose selected linedefs
 				foreach(Linedef ld in selected) ld.Dispose();
@@ -582,9 +588,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			{
 				// Make undo
 				if(selected.Count > 1)
+				{
 					General.Map.UndoRedo.CreateUndo("Split " + selected.Count + " linedefs");
+					General.Interface.DisplayStatus("Split " + selected.Count + " linedefs.");
+				}
 				else
+				{
 					General.Map.UndoRedo.CreateUndo("Split linedef");
+					General.Interface.DisplayStatus(StatusType.Action, "Split a linedef.");
+				}
 				
 				// Go for all linedefs to split
 				foreach(Linedef ld in selected)
@@ -665,9 +677,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			{
 				// Make undo
 				if(selected.Count > 1)
+				{
 					General.Map.UndoRedo.CreateUndo("Flip " + selected.Count + " linedefs");
+					General.Interface.DisplayStatus("Flipped " + selected.Count + " linedefs.");
+				}
 				else
+				{
 					General.Map.UndoRedo.CreateUndo("Flip linedef");
+					General.Interface.DisplayStatus("Flipped a linedef.");
+				}
 
 				// Flip all selected linedefs
 				foreach(Linedef l in selected)
@@ -711,9 +729,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			{
 				// Make undo
 				if(selected.Count > 1)
+				{
 					General.Map.UndoRedo.CreateUndo("Flip " + selected.Count + " sidedefs");
+					General.Interface.DisplayStatus("Flipped " + selected.Count + " sidedefs.");
+				}
 				else
-					General.Map.UndoRedo.CreateUndo("Flip sidedef");
+				{
+					General.Map.UndoRedo.CreateUndo("Flip sidedefs");
+					General.Interface.DisplayStatus("Flipped sidedefs.");
+				}
 
 				// Flip sidedefs in all selected linedefs
 				foreach(Linedef l in selected)
diff --git a/Source/BuilderModes/ClassicModes/SectorsMode.cs b/Source/BuilderModes/ClassicModes/SectorsMode.cs
index 5783a6ef..7e5fc0da 100644
--- a/Source/BuilderModes/ClassicModes/SectorsMode.cs
+++ b/Source/BuilderModes/ClassicModes/SectorsMode.cs
@@ -735,6 +735,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 					
 					// Create undo
 					General.Map.UndoRedo.CreateUndo("Make door (" + doortex + ")");
+					General.Interface.DisplayStatus("Created a " + doortex + " door.");
 					
 					// Go for all selected sectors
 					foreach(Sector s in orderedselection)
@@ -828,9 +829,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			{
 				// Make undo
 				if(selected.Count > 1)
+				{
 					General.Map.UndoRedo.CreateUndo("Delete " + selected.Count + " sectors");
+					General.Interface.DisplayStatus("Deleted " + selected.Count + " sectors.");
+				}
 				else
+				{
 					General.Map.UndoRedo.CreateUndo("Delete sector");
+					General.Interface.DisplayStatus("Deleted sector.");
+				}
 
 				// Dispose selected sectors
 				foreach(Sector s in selected)
@@ -886,6 +893,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			{
 				// Make undo
 				General.Map.UndoRedo.CreateUndo("Join " + count + " sectors");
+				General.Interface.DisplayStatus("Joined " + count + " sectors.");
 
 				// Merge
 				JoinMergeSectors(false);
@@ -911,6 +919,7 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			{
 				// Make undo
 				General.Map.UndoRedo.CreateUndo("Merge " + count + " sectors");
+				General.Interface.DisplayStatus("Merged " + count + " sectors.");
 
 				// Merge
 				JoinMergeSectors(true);
diff --git a/Source/BuilderModes/ClassicModes/ThingsMode.cs b/Source/BuilderModes/ClassicModes/ThingsMode.cs
index b67bd653..24dfc903 100644
--- a/Source/BuilderModes/ClassicModes/ThingsMode.cs
+++ b/Source/BuilderModes/ClassicModes/ThingsMode.cs
@@ -533,6 +533,8 @@ namespace CodeImp.DoomBuilder.BuilderModes
 					General.Interface.ShowEditThings(things);
 				}
 
+				General.Interface.DisplayStatus("Inserted a new thing.");
+
 				// Update things filter
 				General.Map.ThingsFilter.Update();
 
@@ -580,9 +582,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			{
 				// Make undo
 				if(selected.Count > 1)
+				{
 					General.Map.UndoRedo.CreateUndo("Delete " + selected.Count + " things");
+					General.Interface.DisplayStatus("Deleted " + selected.Count + " things.");
+				}
 				else
+				{
 					General.Map.UndoRedo.CreateUndo("Delete thing");
+					General.Interface.DisplayStatus("Deleted thing.");
+				}
 
 				// Dispose selected things
 				foreach(Thing t in selected) t.Dispose();
diff --git a/Source/BuilderModes/ClassicModes/VerticesMode.cs b/Source/BuilderModes/ClassicModes/VerticesMode.cs
index f653ac3d..bdeeafc3 100644
--- a/Source/BuilderModes/ClassicModes/VerticesMode.cs
+++ b/Source/BuilderModes/ClassicModes/VerticesMode.cs
@@ -508,7 +508,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
 				v.SnapToAccuracy();
 
 				// Split the line with this vertex
-				if(snaptonearest && (l != null)) l.Split(v);
+				if(snaptonearest && (l != null))
+				{
+					General.Interface.DisplayStatus("Split a linedef.");
+					l.Split(v);
+				}
+				else
+				{
+					General.Interface.DisplayStatus("Inserted a vertex.");
+				}
 
 				// Update
 				General.Map.Map.Update();
@@ -530,9 +538,15 @@ namespace CodeImp.DoomBuilder.BuilderModes
 			{
 				// Make undo
 				if(selected.Count > 1)
+				{
 					General.Map.UndoRedo.CreateUndo("Delete " + selected.Count + " vertices");
+					General.Interface.DisplayStatus("Deleted " + selected.Count + " vertices.");
+				}
 				else
+				{
 					General.Map.UndoRedo.CreateUndo("Delete vertex");
+					General.Interface.DisplayStatus("Deleted a vertex.");
+				}
 
 				// Go for all vertices that need to be removed
 				foreach(Vertex v in selected)
diff --git a/Source/BuilderModes/VisualModes/BaseVisualMode.cs b/Source/BuilderModes/VisualModes/BaseVisualMode.cs
index 1e3d4ecf..143d09f9 100644
--- a/Source/BuilderModes/VisualModes/BaseVisualMode.cs
+++ b/Source/BuilderModes/VisualModes/BaseVisualMode.cs
@@ -527,12 +527,16 @@ namespace CodeImp.DoomBuilder.BuilderModes
 		public void ToggleGravity()
 		{
 			BuilderPlug.Me.UseGravity = !BuilderPlug.Me.UseGravity;
+			string onoff = BuilderPlug.Me.UseGravity ? "ON" : "OFF";
+			General.Interface.DisplayStatus(StatusType.Action, "Gravity is now " + onoff + ".");
 		}
 
 		[BeginAction("togglebrightness")]
 		public void ToggleBrightness()
 		{
 			renderer.FullBrightness = !renderer.FullBrightness;
+			string onoff = renderer.FullBrightness ? "ON" : "OFF";
+			General.Interface.DisplayStatus(StatusType.Action, "Brightness levels are now " + onoff + ".");
 		}
 
 		[BeginAction("resettexture")]
diff --git a/Source/Editing/UndoManager.cs b/Source/Editing/UndoManager.cs
index 355fbd45..de6f1a04 100644
--- a/Source/Editing/UndoManager.cs
+++ b/Source/Editing/UndoManager.cs
@@ -356,6 +356,7 @@ namespace CodeImp.DoomBuilder.Editing
 							}
 
 							General.WriteLogLine("Performing undo \"" + u.Description + "\", Ticket ID " + u.TicketID + "...");
+							General.Interface.DisplayStatus(StatusType.Action, u.Description + " undone.");
 
 							// Make a snapshot for redo
 							r = new UndoSnapshot(u, General.Map.Map.Serialize());
@@ -431,6 +432,7 @@ namespace CodeImp.DoomBuilder.Editing
 						}
 
 						General.WriteLogLine("Performing redo \"" + r.Description + "\", Ticket ID " + r.TicketID + "...");
+						General.Interface.DisplayStatus(StatusType.Action, r.Description + " redone.");
 
 						// Make a snapshot for undo
 						u = new UndoSnapshot(r, General.Map.Map.Serialize());
diff --git a/Source/General/General.cs b/Source/General/General.cs
index 8e7b4803..5d79b7ae 100644
--- a/Source/General/General.cs
+++ b/Source/General/General.cs
@@ -1116,7 +1116,7 @@ namespace CodeImp.DoomBuilder
 				if(errorlogger.IsErrorAdded)
 					mainwindow.DisplayStatus(StatusType.Warning, "There were errors during saving!");
 				else
-					mainwindow.DisplayReady();
+					mainwindow.DisplayStatus(StatusType.Info, "Map saved in " + map.FileTitle + ".");
 
 				Cursor.Current = Cursors.Default;
 			}
@@ -1168,7 +1168,7 @@ namespace CodeImp.DoomBuilder
 				if(errorlogger.IsErrorAdded)
 					mainwindow.DisplayStatus(StatusType.Warning, "There were errors during saving!");
 				else
-					mainwindow.DisplayReady();
+					mainwindow.DisplayStatus(StatusType.Info, "Map saved in " + map.FileTitle + ".");
 
 				Cursor.Current = Cursors.Default;
 			}
@@ -1220,7 +1220,7 @@ namespace CodeImp.DoomBuilder
 				if(errorlogger.IsErrorAdded)
 					mainwindow.DisplayStatus(StatusType.Warning, "There were errors during saving!");
 				else
-					mainwindow.DisplayReady();
+					mainwindow.DisplayStatus(StatusType.Info, "Map saved into " + map.FileTitle + ".");
 
 				Cursor.Current = Cursors.Default;
 			}
diff --git a/Source/Windows/MainForm.cs b/Source/Windows/MainForm.cs
index e0f3e60a..3656b934 100644
--- a/Source/Windows/MainForm.cs
+++ b/Source/Windows/MainForm.cs
@@ -1760,6 +1760,8 @@ namespace CodeImp.DoomBuilder.Windows
 		{
 			buttonsnaptogrid.Checked = !buttonsnaptogrid.Checked;
 			itemsnaptogrid.Checked = buttonsnaptogrid.Checked;
+			string onoff = buttonsnaptogrid.Checked ? "ON" : "OFF";
+			DisplayStatus(StatusType.Action, "Snap to grid is now " + onoff + " by default.");
 		}
 
 		// Action to toggle auto merge
@@ -1768,6 +1770,8 @@ namespace CodeImp.DoomBuilder.Windows
 		{
 			buttonautomerge.Checked = !buttonautomerge.Checked;
 			itemautomerge.Checked = buttonautomerge.Checked;
+			string onoff = buttonautomerge.Checked ? "ON" : "OFF";
+			DisplayStatus(StatusType.Action, "Snap to geometry is now " + onoff + " by default.");
 		}
 		
 		#endregion