diff --git a/doc/lfun/QueryArticle b/doc/lfun/QueryArticle
index 3be5ecc..17a06ff 100644
--- a/doc/lfun/QueryArticle
+++ b/doc/lfun/QueryArticle
@@ -41,7 +41,7 @@
 
    Das Herausfinden des passenden Artikels bei 'dem' = 2 bezieht sich auf
    Situationen, in denen mehrere gleichnamige Objekte im selben Environment
-   sind. Man 'nimmt' dann zB nicht "den Stamm" sondern "einen Stamm".
+   sind. Man 'nimmt' dann z.B. nicht "den Stamm" sondern "einen Stamm".
 
    Ist P_ARTICLE = 0, so wird ein Leerstring zurueckgegeben, es sei denn,
    man uebergibt in dem Argument 'force' einen Wert ungleich Null.
@@ -82,7 +82,7 @@
      capitalize(pl2->QueryArticle(WER, 1, 1))+"ist nicht beeindruckt.",
      MT_LOOK|MT_LISTEN, 0, 0, ({pl1, pl2}));
 
-   // "X gibt dir Y. [Er|Sie|Es] prueft [den|die|das] ..."
+   // "X gibt Dir Y. [Er|Sie|Es] prueft [den|die|das] ..."
    // Man will:
    // * auf jeden Fall einen Artikel, auch wenn kein P_ARTICLE gesetzt ist
    // * nur den bestimmten Artikel
@@ -99,7 +99,7 @@
    // * auf jeden Fall einen Artikel, auch wenn kein P_ARTICLE gesetzt ist
    // * bestimmte/unbestimmte Artikel, wenn bereits gleiche Gegenstaende
    //   (zB Kokosnuesse) auf dem Boden liegen ...
-   ob->move(environment(), M_NOCHECK); // vorher machen!
+   ob->move(environment(), M_PUT); // vorher machen!
    pl->ReceiveMsg(
      "Dir faellt "+ob->name(WER, 0)+" auf den Kopf. Du siehst "+
      ob->QueryArticle(WEN, 2, 1)+" auf dem Boden liegen. "+
diff --git a/doc/lfun/TakeFlaw b/doc/lfun/TakeFlaw
index 40d99a2..594c164 100644
--- a/doc/lfun/TakeFlaw
+++ b/doc/lfun/TakeFlaw
@@ -7,7 +7,7 @@
 ========
 
    varargs void TakeFlaw(object enemy); (Waffen)
-   varargs void TakeFlaw(mixed dam_types,mapping einfos) (Ruestungen)
+   varargs void TakeFlaw(string* dam_types,mapping einfos) (Ruestungen)
 
 
 DEFINIERT IN
@@ -59,25 +59,21 @@
 
    Eine Waffe, deren Waffenklasse alle 20 Schlaege um 1 abnimmt:
 
-   inherit "std/weapon";
+   inherit "/std/weapon";
 
    #include <properties.h>
    #include <combat.h>
 
-   create()
-   {
+   protected void create() {
      /* Das Uebliche... */
    }
 
-   TakeFlaw()
-   {
-     int flaw;
-
-     /* erst mal den Zaehler erhoehen... */
-     ::TakeFlaw();
+   varargs void TakeFlaw(object enemy) {
+     /* erstmal den Zaehler erhoehen... */
+     ::TakeFlaw(enemy);
 
      /* jetzt den aktuellen Zaehlerstand abfragen */
-     flaw = QueryFlaw()[0];
+     int flaw = QueryFlaw()[0];
 
      /* Abzug nur jeden 20. Schlag */
      if (!(flaw % 20)) {
@@ -94,7 +90,7 @@
 SIEHE AUCH
 ==========
 
-   QueryFlaw(), Damage(), DefendInfo, P_QUIALITY, /std/armour/combat.c,
+   QueryFlaw(), Damage(), DefendInfo, P_QUALITY, /std/armour/combat.c,
    /std/weapon/combat.c
 
 Last modified: Thu May 22 10:30:10 1997 by Paracelsus
diff --git a/doc/sphinx/lfun/QueryArticle.rst b/doc/sphinx/lfun/QueryArticle.rst
index 4076520..91948b6 100644
--- a/doc/sphinx/lfun/QueryArticle.rst
+++ b/doc/sphinx/lfun/QueryArticle.rst
@@ -40,7 +40,7 @@
 
      Das Herausfinden des passenden Artikels bei 'dem' = 2 bezieht sich auf
      Situationen, in denen mehrere gleichnamige Objekte im selben Environment
-     sind. Man 'nimmt' dann zB nicht "den Stamm" sondern "einen Stamm".
+     sind. Man 'nimmt' dann z.B. nicht "den Stamm" sondern "einen Stamm".
 
      Ist P_ARTICLE = 0, so wird ein Leerstring zurueckgegeben, es sei denn,
      man uebergibt in dem Argument 'force' einen Wert ungleich Null.
@@ -81,7 +81,7 @@
        capitalize(pl2->QueryArticle(WER, 1, 1))+"ist nicht beeindruckt.",
        MT_LOOK|MT_LISTEN, 0, 0, ({pl1, pl2}));
 
-     // "X gibt dir Y. [Er|Sie|Es] prueft [den|die|das] ..."
+     // "X gibt Dir Y. [Er|Sie|Es] prueft [den|die|das] ..."
      // Man will:
      // * auf jeden Fall einen Artikel, auch wenn kein P_ARTICLE gesetzt ist
      // * nur den bestimmten Artikel
@@ -98,7 +98,7 @@
      // * auf jeden Fall einen Artikel, auch wenn kein P_ARTICLE gesetzt ist
      // * bestimmte/unbestimmte Artikel, wenn bereits gleiche Gegenstaende
      //   (zB Kokosnuesse) auf dem Boden liegen ...
-     ob->move(environment(), M_NOCHECK); // vorher machen!
+     ob->move(environment(), M_PUT); // vorher machen!
      pl->ReceiveMsg(
        "Dir faellt "+ob->name(WER, 0)+" auf den Kopf. Du siehst "+
        ob->QueryArticle(WEN, 2, 1)+" auf dem Boden liegen. "+
diff --git a/doc/sphinx/lfun/TakeFlaw.rst b/doc/sphinx/lfun/TakeFlaw.rst
index 2ab1916..0475a3d 100644
--- a/doc/sphinx/lfun/TakeFlaw.rst
+++ b/doc/sphinx/lfun/TakeFlaw.rst
@@ -6,7 +6,7 @@
 ::
 
      varargs void TakeFlaw(object enemy); (Waffen)
-     varargs void TakeFlaw(mixed dam_types,mapping einfos) (Ruestungen)
+     varargs void TakeFlaw(string* dam_types,mapping einfos) (Ruestungen)
 
 DEFINIERT IN
 ------------
@@ -58,25 +58,21 @@
 
      Eine Waffe, deren Waffenklasse alle 20 Schlaege um 1 abnimmt:
 
-     inherit "std/weapon";
+     inherit "/std/weapon";
 
      #include <properties.h>
      #include <combat.h>
 
-     create()
-     {
+     protected void create() {
        /* Das Uebliche... */
      }
 
-     TakeFlaw()
-     {
-       int flaw;
-
-       /* erst mal den Zaehler erhoehen... */
-       ::TakeFlaw();
+     varargs void TakeFlaw(object enemy) {
+       /* erstmal den Zaehler erhoehen... */
+       ::TakeFlaw(enemy);
 
        /* jetzt den aktuellen Zaehlerstand abfragen */
-       flaw = QueryFlaw()[0];
+       int flaw = QueryFlaw()[0];
 
        /* Abzug nur jeden 20. Schlag */
        if (!(flaw % 20)) {
@@ -93,7 +89,7 @@
 ----------
 ::
 
-     QueryFlaw(), Damage(), DefendInfo, P_QUIALITY, /std/armour/combat.c,
+     QueryFlaw(), Damage(), DefendInfo, P_QUALITY, /std/armour/combat.c,
      /std/weapon/combat.c
 
 
