diff --git a/doc/sphinx/lfun/NewDoor.rst b/doc/sphinx/lfun/NewDoor.rst
index 22cc177..c13e3f8 100644
--- a/doc/sphinx/lfun/NewDoor.rst
+++ b/doc/sphinx/lfun/NewDoor.rst
@@ -71,8 +71,6 @@
           ([ D_STATUS_CLOSED : "Die Tuer ist geschlossen.\n",
              D_STATUS_OPEN   : "Die Tuer ist offen.\n" ])
 
-          
-
           Default: "Eine Tuer.\n"
 
      D_SHORT
@@ -192,12 +190,15 @@
   ** Tueren mit Bewegungsmeldung:
 
      NewDoor("norden","/room/see2",
+             ({"gitter","eisengitter"}),
              ({ D_MSGS,  ({"nach Norden","schwimmt",
-                           "kommt hereingeschwommen"}) }) );
+                           "schwimmt von Sueden herein"}),
+                D_GENDER, NEUTER}) );
 
   ** Eine Tuer mit Testfunktion:
 
      NewDoor("osten","/mein/zielraum",
+             ({"tuer"}),
              ({ D_TESTFUNC, "blocker_da" }) );
 
      Die Funktion blocker_da:
@@ -205,11 +206,12 @@
      int blocker_da()      // KEINE protected-Funktion! Sie wird sonst NICHT
      {                     // aufgerufen und ausgewertet!
        if ( present("mein_fieses_mo\nster",this_object()) )
-        {
-         write("Ein fieses Monster stellt sich Dir in den Weg.\n");
+       {
+         tell_object(this_player(),
+             "Ein fieses Monster stellt sich Dir in den Weg.\n");
          return 1;
-        }
-       return 0;           // optional
+       }
+       return 0;
      }
 
   ** Nun noch eine Tuer mit einigen Extras:
@@ -217,30 +219,30 @@
      NewDoor("nordwesten","/rooms/kammer",
              ({"tuer","holztuer"}),
              ({
-               D_FLAGS,  (DOOR_CLOSED|DOOR_RESET_CL),
-               D_MSGS,   ({"nach Nordwesten","geht",
-                         "kommt durch eine Tuer herein"}),
-               D_SHORT,  "Im Nordwesten siehst Du eine %se Holztuer.",
-               D_LONG,   "Sie trennt den Laden vom dahinterliegenden Raum.\n",
-               D_NAME,   "Holztuer",
-               D_FUNC,   "view",
-               D_FUNC2,  "look_up"
+               D_FLAGS, (DOOR_CLOSED|DOOR_RESET_CL),
+               D_MSGS,  ({"nach Nordwesten","geht",
+                        "kommt durch eine Tuer herein"}),
+               D_SHORT, "Im Nordwesten siehst Du eine %se Holztuer.",
+               D_LONG,  "Sie trennt den Laden vom dahinterliegenden Raum.\n",
+               D_NAME,  "Holztuer",
+               D_FUNC,  "view",
+               D_FUNC2, "look_up"
              }) );
 
      Im Startraum:
 
      void view()
      {
-       write("Der Angestellte wirft Dir einen missbilligenden Blick zu, "
-             "laesst Dich aber passieren.\n");
+       tell_object(this_player(), break_string("Der Angestellte wirft Dir "
+         "einen missbilligenden Blick zu, laesst Dich aber passieren.",78));
      }
 
      Im Zielraum:
 
      void look_up()
      {
-       write("Ein alter Mann schaut kurz zu Dir auf und vertieft sich dann "
-             "wieder in seine Akten.\n");
+       tell_object(this_player(), break_string("Ein alter Mann schaut kurz "
+         "zu Dir auf und vertieft sich dann wieder in seine Akten.",78));
      }
 
 SIEHE AUCH
