diff --git a/doc/master/flag b/doc/master/flag
index e04e91d..dccb52b 100644
--- a/doc/master/flag
+++ b/doc/master/flag
@@ -1,41 +1,41 @@
 SYNOPSIS
-	void flag(string arg)
+        void flag(string arg)
 
 DESCRIPTION
-	Evaluate an argument given as option '-f' to the driver.
-	If several '-f' options are given, this function will be
-	called sequentially with all given arguments.
-	This function can be used to pass the master commands via
-	arguments to the driver. This is useful when building a new
-	mudlib from scratch. It is called only when the system is
-	started.
+        Evaluate an argument given as option '-f' to the driver.
+        If several '-f' options are given, this function will be
+        called sequentially with all given arguments.
+        This function can be used to pass the master commands via
+        arguments to the driver. This is useful when building a new
+        mudlib from scratch. It is called only when the system is
+        started.
 
 EXAMPLE
-	// The code given implements these commands:
-	//  '-fcall <ob> <fun> <arg>': call function <fun> in object <ob> with
-	//				argument <arg>.
-	//  '-fshutdown': shutdown the system immediately.
-	// Thus, starting the driver as
-	//	 'parse "-fcall foo bar Yow!" -fshutdown' would
-	// first do foo->bar("Yow!") and then shut down the system.
+        // The code given implements these commands:
+        //  '-fcall <ob> <fun> <arg>': call function <fun> in object <ob> with
+        //                                argument <arg>.
+        //  '-fshutdown': shutdown the system immediately.
+        // Thus, starting the driver as
+        //         'parse "-fcall foo bar Yow!" -fshutdown' would
+        // first do foo->bar("Yow!") and then shut down the system.
 
-	{
-	  string obj, fun, rest;
+        {
+          string obj, fun, rest;
 
-	  if (arg == "shutdown")
-	  {
-	    shutdown();
-	    return;
-	  }
-	  if (sscanf(arg, "call %s %s %s", obj, fun, rest) >= 2)
-	  {
-	    write(obj+"->"+fun+"(\""+rest+"\") = ");
-	    write(call_other(obj, fun, rest));
-	    write("\n");
-	    return;
-	  }
-	  write("master: Unknown flag "+arg+"\n");
-	}
+          if (arg == "shutdown")
+          {
+            shutdown();
+            return;
+          }
+          if (sscanf(arg, "call %s %s %s", obj, fun, rest) >= 2)
+          {
+            write(obj+"->"+fun+"(\""+rest+"\") = ");
+            write(call_other(obj, fun, rest));
+            write("\n");
+            return;
+          }
+          write("master: Unknown flag "+arg+"\n");
+        }
 
 SEE ALSO
-	master(M)
+        master(M)
