diff --git a/doc/sphinx/man/props/P_COMMANDS b/doc/sphinx/man/props/P_COMMANDS
new file mode 100644
index 0000000..5812b35
--- /dev/null
+++ b/doc/sphinx/man/props/P_COMMANDS
@@ -0,0 +1,76 @@
+
+P_COMMANDS
+**********
+
+
+NAME
+====
+
+   P_COMMANDS "commands"
+
+
+DEFINIERT IN
+============
+
+   <thing/commands.h>
+
+
+BESCHREIBUNG
+============
+
+   Diese Property enthaelt ein Mapping mit den Befehlen, die dem Objekt
+   zugeordnet sind.
+
+   Sie sollte nicht von Hand manipuliert werden, sondern nur ueber die
+   Funktionen AddCmd() und RemoveCmd().
+
+   Das Mapping hat folgenden Aufbau:
+
+   ([ befehl : ({funktion1,...});
+               ({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);
+   -->
+   ([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
+
+   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, ...}), ...})
+   Flags: ({<Flag fuer fun1>, ({<Fehlermeldung 1. Synonymgruppe>, ... ,
+                                [, 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()
+
+16. Dez 2016 Gloinson
