diff --git a/doc/sphinx/man/lfun/AddSpecialExit b/doc/sphinx/man/lfun/AddSpecialExit
new file mode 100644
index 0000000..2f16c17
--- /dev/null
+++ b/doc/sphinx/man/lfun/AddSpecialExit
@@ -0,0 +1,82 @@
+
+AddSpecialExit()
+****************
+
+
+FUNKTION
+========
+
+   void AddSpecialExit(string|string* cmd, string|closure func);
+
+
+DEFINIERT IN
+============
+
+   /std/room/exits
+
+
+ARGUMENTE
+=========
+
+   string/string* cmd
+        die Richtung(en), in die der Ausgang fuehrt
+   string/closure func
+        der Name der aufzurufenden Funktion/Closure
+
+
+BESCHREIBUNG
+============
+
+   Es wird ein Ausgang in die Richtung(en) cmd eingefuegt. Wird der
+   Ausgang benutzt, so wird die Closure bzw. Funktion func ausgefuehrt.
+
+   AddSpecialExit(cmd, "func") entspricht:
+   - AddExit(keys, #'func)
+
+
+BEMERKUNGEN
+===========
+
+   In func muss man den Spieler selbst in den Zielraum bewegen. Im
+   Erfolgsfall sollte man einen Wert >0 zurueckgeben, im Fehlerfall einen
+   Wert <=0.
+
+   func bekommt als Parameter einen String mit der gewaehlten
+   Bewegungsrichtung uebergeben.
+
+
+BEISPIELE
+=========
+
+   // ein Ausgang soll nur von Froeschen benutzbar sein:
+
+   AddSpecialExit("loch", "lochfkt");
+   // der gleiche Aufruf, nur anders:
+   // static int lochfkt(string dir);         // Prototyp
+   // ...
+   // AddSpecialExit("loch", #'lochfkt);
+   // auch identisch zu:
+   // AddExit("loch", #'lochfkt);
+
+   static int lochfkt(string dir) {
+     if (!(this_player()->QueryProp(P_FROG))) {
+       // Kein Frosch => passt nicht!
+       notify_fail("Du bist zu gross!\n");
+       return 0;
+     }
+     // Meldungen werden im move() gleich mitgegeben
+     return this_player()->move("/room/loch", M_GO, 0,
+                  "huepft ins Loch", "huepft herein");
+   }
+
+
+SIEHE AUCH
+==========
+
+   AddExit(), GetExits(),
+   RemoveExit(), RemoveSpecialExit(),
+   GuardExit(),
+   H_HOOK_EXIT_USE, P_EXITS, P_HIDE_EXITS, /std/room/exits.c
+   ausgaenge
+
+Letzte Aenderung: 22.12.2016, Bugfix
