diff --git a/doc/props/P_COMMANDS b/doc/props/P_COMMANDS
index 527d1a1..d0ff99b 100644
--- a/doc/props/P_COMMANDS
+++ b/doc/props/P_COMMANDS
@@ -18,30 +18,41 @@
                  ({flag1,...});
                  ({regel1,...});
                  ({id1, ...}),
+                 ({closure auf fun1, ...}),
         ... ])
 
      Die Eintraege entsprechen den Parametern des AddCmd()-Aufrufs, sind
      aber in anderer Form. Als Beispiel:
 
      AddCmd(verb,fun1,1);
-     AddCmd(verb+syn1a|syn1b&syn2a|syn2b|syn2c,fun2,
-	   error1_notify|error2_notify^error2_write);
+     AddCmd(verb+syn1a|syn1b&syn2a|syn2b|syn2c, fun2,
+            error1_notify|error2_notify^error2_write);
      -->
-     ([verb:({fun1,fun2});					  // funs
-	    ({1,({error1_notify, error2_write^error2_say, 1})});  // flags
-            ({0,({({syn1a,syn1b}),({syn2a,syn2b,syn2c})})});	  // rules
-            0])							  // IDs
+     ([verb:
+        ({fun1,fun2});                                        // funs
+        ({1,({error1_notify, error2_write^error2_say, 1})});  // flags
+        ({0,({({syn1a,syn1b}),({syn2a,syn2b,syn2c})})});      // rules
+        0;                                                    // IDs
+        ({closure auf fun1, closure auf fun2}) ])             // Cache
 
-     Aufgeschluesselt sehen die einzelnen Arrays folgendermassen aus:
-
+     Funs:  ({<fun1> ,...
+              'fun' kann sein: Closure
+                               String: Methodenname - wird etwas geprueft
+                               Objekt: wenn keine Methode, this_object() fuer
+                                       intern, previous_object() fuer extern
+                               0 (erloschenes externes Objekt)
      Rules: ({<Regelsatz fuer fun1>, ({<1. Synonymgruppe>,
-				       <2. Synonymgruppe, ...}), ...})
+                                       <2. Synonymgruppe, ...}), ...})
      Flags: ({<Flag fuer fun1>, ({<Fehlermeldung 1. Synonymgruppe>, ... ,
-				  [, Index fuer write anstatt notify_fail]}),
-	      ... })
+                                  [, Index fuer write anstatt notify_fail]}),
+             ... })
      IDs:   0 oder ({<ID fuer fun1>}) oder ({0, <ID fuer fun2>}) ...
+     Cache: ({<closure fuer fun1>, ...
+
+BEMERKUNGEN:
+     Cache-Closures sind bei Export immer genullt
 
 SIEHE AUCH:
      /std/thing/commands.c, AddCmd(), RemoveCmd()
 
-08.Dez.2003 Gloinson
+16. Dez 2016 Gloinson
\ No newline at end of file
