diff --git a/doc/beispiele/virtual/zesstra/std_arena.c b/doc/beispiele/virtual/zesstra/std_arena.c
new file mode 100644
index 0000000..de2e5a2
--- /dev/null
+++ b/doc/beispiele/virtual/zesstra/std_arena.c
@@ -0,0 +1,20 @@
+inherit "/std/room";
+
+#pragma strong_types,save_types,rtt_checks
+#include <properties.h>
+
+protected void create()
+{
+    if(!clonep(TO))
+        return;
+    ::create();
+
+    SetProp(P_INT_LONG, break_string(
+          "Du stehst hier in einer voellig leeren Arena."
+          "Gegen wen solltest Du hier denn gleich kaempfen...?",78));
+    SetProp(P_INT_SHORT, "In einer Arena");
+    SetProp(P_LIGHT, 1);
+    SetProp(P_INDOORS,0);
+
+    AddExit("raus", "/gilden/abenteurer");
+}
diff --git a/doc/beispiele/virtual/zesstra/virtual_compiler.c b/doc/beispiele/virtual/zesstra/virtual_compiler.c
new file mode 100644
index 0000000..36753df
--- /dev/null
+++ b/doc/beispiele/virtual/zesstra/virtual_compiler.c
@@ -0,0 +1,32 @@
+inherit "/std/virtual/v_compiler.c";
+
+#pragma strong_types,rtt_checks,save_types
+
+#include <thing/properties.h>
+
+#define NEED_PROTOTYPES
+#include <v_compiler.h>
+#undef NEED_PROTOTYPES
+
+protected void create() {
+    ::create();
+
+    // jeder Spieler kriegt eine "Kopie" von std_arena als Raum.
+    SetProp(P_STD_OBJECT, __DIR__"std_arena");
+    SetProp(P_COMPILER_PATH, __DIR__);
+}
+
+public string Validate(string file)
+{
+    string raum, spieler;
+    //.c abschneiden
+    file=::Validate(file);
+    // wenn das gewuenscht file dem Schema "arena|spielername" folgt, ist es
+    // zulaessig.
+    if(sscanf(file,"%s|%s",raum,spieler)==2 && raum=="arena")
+       return file;
+
+    // nicht zulaessig.
+    return 0;
+}
+
