diff --git a/doc/efun-mg/tell_room b/doc/efun-mg/tell_room
new file mode 100644
index 0000000..aebb16f
--- /dev/null
+++ b/doc/efun-mg/tell_room
@@ -0,0 +1,49 @@
+
+tell_room
+*********
+
+
+BEMERKUNGEN
+===========
+
+   Wird in einem catch_msg() der Wert von <msg> veraendert, erhalten
+   alle nachfolgenden Objekte das veraenderte <msg> (Referenz!)
+
+
+BEISPIELE
+=========
+
+      // Dies ist ein einfaches Beispiel fuer eine Meldung an alle An-
+      // wesenden im Raum.
+
+      tell_room(this_object(),"Ein leichter Wind kommt auf.\n");
+
+      // Diese Meldung wird im Raum /d/ebene/ark/raum.c ausgegeben, dieser
+      // Raum muss nicht derjenige sein, in dem das tell_room() ausgefuehrt
+      // wird.
+
+      tell_room("/d/ebene/ark/raum","Ein leichter Wind kommt auf.\n");
+
+
+      // Diese Meldung wird an alle Anwesenden im Raum AUSSER this_player()
+      // (der diese Meldung ausgeloest hat) ausgegeben. Der muss eine ge-
+      // sonderte Meldung ueber sein Stolpern per write() oder
+      // tell_object() bekommen.
+      tell_room(this_object(),
+                break_string(this_player()->Name()+" stolpert.", 78),
+                ({ this_player() }));
+      tell_object(this_player(), "Du stolperst.\n");
+
+      // Ein Beispiel mit zwei Objekten, das zeigt, wie das Zusammenspiel
+      // von catch_tell() und tell_room() ablaueft. Objekt1 ist ein
+      // Lebewesen mit Namen "Dummymonster", Objekt2 verteilt die Meldung:
+
+      Objekt1 (ein Lebewesen, steht im Env von this_player()):
+          void catch_tell(string str) {
+              write("Empfangen: "+str+"\n");
+          }
+
+      Objekt2:
+          void fun() {
+              tell_room(environment(this_player()), "Hallo Welt!\n");
+          }
