diff --git a/doc/efun/command b/doc/efun/command
new file mode 100644
index 0000000..09d6c0b
--- /dev/null
+++ b/doc/efun/command
@@ -0,0 +1,50 @@
+command()
+FUNKTION:
+     int command(string str)
+     int command(string str, object ob)
+
+BESCHREIBUNG:
+     Fuehrt str wie ein Kommando welches direkt vom Nutzer abgegeben wurde
+     aus. Alle Effekte des Kommandos wirken sich auf this_object() oder,
+     falls angegeben, auf das Objekt <obj> aus.
+
+     Der Rueckgabewert ist >=1 fuer Erfolg und 0 fuer Misserfolg.
+     Rueckgabewert ist im Erfolgsfall die Hoehe der EvalCost in Ticks.
+
+     Wenn command() auf ein anderes Objekt angewendet wird, koennen auf
+     diesem Wege keine "static" deklarierten Funktionen aufgerufen werden,
+     um etwas Schutz vor unerlaubten Aufrufen zu geben.
+
+     Kommandi werden gestapelt, das heisst, nach der Ausfuehrung von <str>
+     werden die alten Werte fuer this_player(), query_verb() etc. wieder
+     hergestellt (ein Kommando kann dazu fuehren, dass ein Kommando
+     ausgefuehrt wird).
+
+BEMERKUNGEN:
+     Die meisten in Lebewesen definierten Kommandofunktionen sind vor
+     aeusserem Aufrufen durch "static" oAe geschuetzt. Zum Ausfuehren dieser
+     Kommandos muss command_me(L) eingesetzt werden, um diesen Schutz zu
+     umgehen.
+
+BEISPIELE:
+     Siehe command_me(L) fuer einen Vergleich.
+	 
+     // #1 Ein NPC nimmt und zuendet eine herumliegende /std/lightsource an
+     object f = present("\nlichtquelle", environment());
+     if(f && command("nimm lichtquelle"))
+       if(command("zuende lichtquelle an"))
+         tell_room(environment(), Name(WER)+" freut sich.\n");
+       else
+         tell_room(environment(), Name(WER)+" schaut bedroeppelt.\n");
+     
+     // #2 Ein NPC traegt seine Sachen
+     clone_object("/ruestung/sommerkleid")->move(this_object(), 2);
+     command("trage kleid")
+     // aequivalent und besser ist hier:
+     AddItem("/ruestung/sommerkleid", REFRESH_REMOVE|CLONE_WEAR);
+
+SIEHE AUCH
+     command_stack(E), notify_fail(E), enable_commands(E), get_eval_cost(E)
+     command_me(L)
+
+6 Sep 2012 Gloinson
