diff --git a/doc/lfun/NewDoor b/doc/lfun/NewDoor
index c534be5..6048d53 100644
--- a/doc/lfun/NewDoor
+++ b/doc/lfun/NewDoor
@@ -72,8 +72,6 @@
         ([ D_STATUS_CLOSED : "Die Tuer ist geschlossen.\n",
            D_STATUS_OPEN   : "Die Tuer ist offen.\n" ])
 
-
-
         Default: "Eine Tuer.\n"
 
    D_SHORT
@@ -191,12 +189,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:
@@ -204,11 +205,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:
@@ -216,30 +218,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));
       }
 
 
