diff --git a/doc/efun/query_verb b/doc/efun/query_verb
index 2890174..ca8a086 100644
--- a/doc/efun/query_verb
+++ b/doc/efun/query_verb
@@ -1,42 +1,41 @@
 SYNOPSIS
-        string query_verb()
+        string query_verb(void)
         string query_verb(int flag)
 
-BESCHREIBUNG
-        Liefert das Verb des aktuellen Kommandos oder 0, wenn kein Kommando
-        bearbeitet wird. Wenn <flag> nicht angegeben oder 0 ist, wird das Verb
-        wie vom User eingegeben geliefert (das ist das erste Wort der
-        Inputzeile des Spielers, bis zum (aber ohne) den ersten Leerschlag /
-        Zeilenumbruch). Wenn <flag> nicht 0 ist, wird das Verb entsprechend
-        der add_action() zurueck gegeben.
+DESCRIPTION
+        Return the verb of the current command, of 0 if not executing from
+        a command. If <flag> is 0 or not given, the verb as given by the user
+        is returned (this is the first word from the line input by the player,
+        up to but not including the first space or lineend). If <flag> is
+        non-0, the verb as specified in the add_action() statement is returned.
 
-BEISPIELE
+EXAMPLES
         void init() {
-            ...
-            add_action("sing","singe");
-            add_action("sing","jodel", 1);
-            ...
+           ...
+           add_action("sing","sing");
+           add_action("sing","chant", 1);
+           ...
         }
-
         int sing(string str) {
-            write("Das Kommando war:"+query_verb()+(str ? str : "")+"\n");
-            write("Das Verb war:"+query_verb(1)+(str ? str : "")+"\n");
+           write("Your command was: "+query_verb()+(str ? str : "")+"\n");
+           write("The action verb was: "+query_verb(1)+(str ? str : "")+"\n");
+           return 1;
         }
 
-        Das Kommando "sing blafasel" liefert:
-            Das Kommando war: sing
-            Das Verb war: sing
+        The command 'sing ...' will print:
+            Your command was: sing
+            The action verb was: sing
 
-        Das Kommando "jodel blafasel" liefert:
-            Das Kommando war: jodel
-            Das Verb war: jodel
+        The command 'chant ...' will print:
+            Your command was: chant
+            The action verb was: chant
 
-        Das Kommando "jodele blafasel" liefert:
-            Das Kommando war: jodele
-            Das Verb war: jodel
+        The command 'chantit ...' will print:
+            Your command was: chantit
+            The action verb was: chant
 
-GESCHICHTE
-        LDMud 3.2.9. fuehrte das optionale Argument <flag> ein.
+HISTORY
+        LDMud 3.2.9 added the optional flag argument.
 
-SIEHE AUCH
+SEE ALSO
         add_action(E), query_command(E)
