diff --git a/doc/lfun/QueryGuest b/doc/lfun/QueryGuest
index cc9971b..61cfb04 100644
--- a/doc/lfun/QueryGuest
+++ b/doc/lfun/QueryGuest
@@ -1,33 +1,54 @@
+
 QueryGuest()
-FUNKTION:
-     int QueryGuest();
+************
 
-DEFINIERT IN:
-     /std/player/base
 
-BESCHREIBUNG:
-     Auf der uid basierende Hilfsfunktion, um Gaeste zu identifizieren.
+FUNKTION
+========
 
-RUeCKGABEWERT:
-     1, wenn Spielerobjekt ein Gast ist; 0 sonst
+   int QueryGuest();
 
-BEISPIELE:
-     if(this_interactive()->QueryGuest())
-     {
-       (this_interactive()->ReceiveMsg(
-          "Wir bedienen hier nur ordentliche Charaktere.",
-          MT_LISTEN, MA_SAY,
-          "Der Wirt sagt: ") != MSG_SENSE_BLOCK) ||
-       (this_interactive()->ReceiveMsg(
-          "Der Wirt gestikuliert dich hinaus.",
-          MT_LOOK, MA_LOOK) != MSG_SENSE_BLOCK) ||
-       (this_interactive()->ReceiveMsg(
-          "Irgendwer stupst dich an. Du sollst wohl gehen.",
-          MT_FEEL, MA_FEEL));
-       return 1;
-     }
 
-SIEHE AUCH:
-     getuid()
+DEFINIERT IN
+============
+
+   /std/player/base
+
+
+BESCHREIBUNG
+============
+
+   Auf der uid basierende Hilfsfunktion, um Gaeste zu identifizieren.
+
+
+RUeCKGABEWERT
+=============
+
+   1, wenn Spielerobjekt ein Gast ist; 0 sonst
+
+
+BEISPIELE
+=========
+
+   if(this_interactive()->QueryGuest())
+   {
+     (this_interactive()->ReceiveMsg(
+        "Wir bedienen hier nur ordentliche Charaktere.",
+        MT_LISTEN, MA_SAY,
+        "Der Wirt sagt: ") != MSG_SENSE_BLOCK) ||
+     (this_interactive()->ReceiveMsg(
+        "Der Wirt gestikuliert dich hinaus.",
+        MT_LOOK, MA_LOOK) != MSG_SENSE_BLOCK) ||
+     (this_interactive()->ReceiveMsg(
+        "Irgendwer stupst dich an. Du sollst wohl gehen.",
+        MT_FEEL, MA_FEEL));
+     return 1;
+   }
+
+
+SIEHE AUCH
+==========
+
+   getuid()
 
 14. Mai 2015 Gloinson
