Kommentare ergaenzt.
diff --git a/room/huette16.c b/room/huette16.c
index b2ce48d..3feee6a 100644
--- a/room/huette16.c
+++ b/room/huette16.c
@@ -24,13 +24,22 @@
   ::reset();
 
   object kiste = present_clone(__PATH__(1)"obj/kiste");
-  if (!objectp(kiste)) return; // sollte nicht passieren
+  // Sollte nicht passieren, da in :reset() bereits AddItem() gerufen wurde:
+  if (!objectp(kiste)) return;
 
+  /* Doku zu filter() bitte in "man filter" nachlesen. Wir benutzen hier eine
+     Inline-Closure, so etwas sollte ja aus den bisherigen Beispielen wohl-
+     bekannt sein: */
   object *zeugs = filter(all_inventory(), function int(object o) {
     return (!living(o)); });
   if (pointerp(zeugs) && sizeof(zeugs)) {
     tell_room(TO, BSLF(
       "Der Raum gurgelt, die Kiste ruelpst."));
+    /*
+      Wie in "man call_other" erlaeutert, muss man nicht durch ein Objekt-
+      Array durchiterieren, wenn man eine Member-Function fuer jedes einzelne
+      Objekt aufrufen moechte, sondern kann die folgende Syntax verwenden:
+     */
     zeugs->move(kiste, M_PUT);
   } else {
     tell_room(TO, BSLF(