diff --git a/doc/beispiele/AddCmd/busch.c b/doc/beispiele/AddCmd/busch.c
index da3c5b3..a28eb41 100644
--- a/doc/beispiele/AddCmd/busch.c
+++ b/doc/beispiele/AddCmd/busch.c
@@ -30,29 +30,44 @@
    // "pfluecke beeren von busch" etc.
    AddCmd("pfluecke|ernte&fruechte|beeren&@ID","cmd_pfluecken",
           "Was willst Du denn @verben?|Wo willst Du denn die Beeren @verben?");
+   //      ^- Fehler fuer 'fruechte'   ^- Fehler fuer '@ID'
 
    // suchen gibt nur eine Meldung aus. Dafuer braucht man kuenftig keine
    // Funktionen mehr.
    AddCmd("such|suche|durchsuch|durchsuche&@ID&\nimpossible",0, 
-          "Wo willst Du @VERBen?|Du durchsuchst das Gebuesch, findest aber nichts.^"
-          "@WER1 durchsucht ein Gebuesch, findet aber nichts.");
+          "Wo willst Du @VERBen?|Du durchsuchst das Gebuesch, findest aber nichts."
+   //      ^- Fehler fuer '@ID'  ^- Fehler fuer unerfuellbare Regel '\nimpossible'
+          "^@WER1 durchsucht ein Gebuesch, findet aber nichts.");
+   //      ^- return 1-Flag, mit Raummeldung
 
    // Graben geht eh nicht. Daher nur Fehlermeldungen.
    // Das ^ sagt, dass hier ein return1 zurueckgegeben wird. Es gibt aber keine 
    // Raummeldung.
    AddCmd("grab|grabe&@ID&aus@\nimpossible",0,
           "Was willst Du graben?|Du willst das Gebuesch ausgraben?|"
+   //      ^- Fehler fuer '@ID'  ^- Fehler fuer 'aus'
           "Die Wurzeln scheinen tief zu rechen. Das wird nichts.^");
+   //      ^- Fehler fuer unerfuellbare Regel '\nimpossible'    ^- return 1-Flag
+   //                                                              keine Raum
 }
 
 int cmd_pfluecken(string arg, mixed *param)
 {
-    object obj;
-    obj=clone_object(__DIR__"obst");
-    write("Verwundert pflueckst Du "+(obj->name())+" vom Busch. Komisch.\n");
+  object obj = clone_object(__DIR__"obst");
+  string msg = "Verwundert pflueckst Du "+(obj->name())+" vom Busch. "
+               "Komisch.";
 
-    // Das hier ist ein Beispiel fuer AddCmd, daher mach ich mir nich 
-    // die Muehe das richtig zu machen. Is eh nur fuer Magier!
-    obj->move(this_player(),M_GET|M_NOCHECK);
+  this_player()->ReceiveMsg(msg, MT_NOTIFICATION);
+  if(this_player()->pick(obj))
     return 1;
+
+  if(obj->move(environment(), M_PUT) == MOVE_OK)
+    this_player()->ReceiveMsg(obj->Name(WER)+" faellt zu Boden.",
+                              MT_LOOK|MT_LISTEN);
+  else {
+    this_player()->ReceiveMsg(obj->Name(WER, 1)+" zerplatzt.",
+                              MT_LOOK|MT_LISTEN);
+    obj->remove(1);
+  }
+  return 1;
 }
