diff --git a/doc/lfun/AddExtraLook b/doc/lfun/AddExtraLook
index 279b496..3e6edc2 100644
--- a/doc/lfun/AddExtraLook
+++ b/doc/lfun/AddExtraLook
@@ -172,12 +172,12 @@
 ==========
 
    Verwandt:
-      *RemoveExtraLook()*, *P_INTERNAL_EXTRA_LOOK*
+      RemoveExtraLook(), P_INTERNAL_EXTRA_LOOK
 
    Sonstiges:
-      *replace_personal()*, *break_string()*
+      replace_personal(), break_string()
 
    Fuer Spielerobjekte:
-      *P_EXTRA_LOOK*
+      P_EXTRA_LOOK
 
 5. Juni 2017 Gloinson
diff --git a/doc/lfun/AddInfo b/doc/lfun/AddInfo
index e2774d5..193e407 100644
--- a/doc/lfun/AddInfo
+++ b/doc/lfun/AddInfo
@@ -241,18 +241,18 @@
 ==========
 
    Verwandt:
-      *AddSpecialInfo()*, *RemoveInfo()*
+      AddSpecialInfo(), RemoveInfo()
 
    Props:
-      *P_PRE_INFO*
+      P_PRE_INFO
 
    Files:
       /std/npc/info.c
 
    Loggen:
-      *P_LOG_INFO*
+      P_LOG_INFO
 
    Interna:
-      *GetInfoArr()* , *do_frage()*
+      GetInfoArr() , do_frage()
 
 7. Mar 2017 Gloinson
diff --git a/doc/lfun/AddRoomMessage b/doc/lfun/AddRoomMessage
index 7d33a52..82c2c99 100644
--- a/doc/lfun/AddRoomMessage
+++ b/doc/lfun/AddRoomMessage
@@ -152,9 +152,9 @@
 ==========
 
    Verwandt:
-      tell_room(), *send_room()*, *ReceiveMsg()*
+      tell_room(), send_room(), ReceiveMsg()
 
    Props:
-      *P_MSG_PROB*, *P_FUNC_MSG*, *P_ROOM_MSG*
+      P_MSG_PROB, P_FUNC_MSG, P_ROOM_MSG
 
 28. Mar 2016 Gloinson
diff --git a/doc/lfun/AddSpell b/doc/lfun/AddSpell
index b8175e5..c0e6da7 100644
--- a/doc/lfun/AddSpell
+++ b/doc/lfun/AddSpell
@@ -192,10 +192,9 @@
 SIEHE AUCH
 ==========
 
-   Sonstiges: *SpellAttack()*, *SpellDefend()*, *Defend()*,
-   *QueryDefend()*, *SelectEnemy()*, *ReceiveMsg()*,
-   *replace_personal()*
+   Sonstiges: SpellAttack(), SpellDefend(), Defend(), QueryDefend(),
+   SelectEnemy(), ReceiveMsg(), replace_personal()
 
-   Properties: *P_DISABLE_ATTACK*, *P_SPELLRATE*, *P_AGGRESSIVE*
+   Properties: P_DISABLE_ATTACK, P_SPELLRATE, P_AGGRESSIVE
 
 Letzte Aenderung: 15.02.2018, Bugfix
diff --git a/doc/lfun/Defend b/doc/lfun/Defend
index dd66fa1..1de1f78 100644
--- a/doc/lfun/Defend
+++ b/doc/lfun/Defend
@@ -178,20 +178,20 @@
 SIEHE AUCH
 ==========
 
-   Angriff: *Attack()*, *P_NO_ATTACK*, *InsertEnemy()*
+   Angriff: Attack(), P_NO_ATTACK, InsertEnemy()
 
-   Schaden:   *P_ENABLE_IN_ATTACK_OUT*, *P_LAST_MOVE*, *do_damage()*,
-   *reduce_hit_points()*
+   Schaden:   P_ENABLE_IN_ATTACK_OUT, P_LAST_MOVE, do_damage(),
+   reduce_hit_points()
 
-   Schutz:    *P_DEFENDERS*, *InformDefend()*, *DefendOther()*,
-   *P_ARMOURS*, *P_AC*, *P_DEFEND_FUNC*, *QueryDefend()*, *P_BODY*
+   Schutz:    P_DEFENDERS, InformDefend(), DefendOther(), P_ARMOURS,
+   P_AC, P_DEFEND_FUNC, QueryDefend(), P_BODY
 
-   Daten:     *P_LAST_COMBAT_TIME*, *P_LAST_DAMTYPES*,
-   *P_LAST_DAMTIME*, *P_LAST_DAMAGE*, *P_DAMAGE_MSG*
+   Daten:     P_LAST_COMBAT_TIME, P_LAST_DAMTYPES, P_LAST_DAMTIME,
+   P_LAST_DAMAGE, P_DAMAGE_MSG
 
-   Resistenz: *P_RESISTANCE_STRENGTHS*, *CheckResistance()*
+   Resistenz: P_RESISTANCE_STRENGTHS, CheckResistance()
 
-   Sonstiges: *CheckSensitiveAttack()*, *InternalModifyDefend()*,
-   *UseSkill()*, *DefendInfo()*
+   Sonstiges: CheckSensitiveAttack(), InternalModifyDefend(),
+   UseSkill(), DefendInfo()
 
 Letzte Aenderung: 29.12.2017, Bugfix
diff --git a/doc/lfun/DefendFunc b/doc/lfun/DefendFunc
index a544cc2..5338a9f 100644
--- a/doc/lfun/DefendFunc
+++ b/doc/lfun/DefendFunc
@@ -103,4 +103,4 @@
 SIEHE AUCH
 ==========
 
-   *P_DEFEND_FUNC*, "QueryDefendd" /std/armour/combat.c
+   P_DEFEND_FUNC, *QueryDefendd* /std/armour/combat.c
diff --git a/doc/lfun/GetHelperObject b/doc/lfun/GetHelperObject
index e879129..87b1b8a 100644
--- a/doc/lfun/GetHelperObject
+++ b/doc/lfun/GetHelperObject
@@ -39,9 +39,8 @@
    welches die Anforderungen erfuellt.
 
    Ist <strength> ein int, muss die Staerke/Guete des Helfers
-   (Rueckgabewert der Callback-Methode, siehe
-   *RegisterHelperObject()*) mindestens so gross sein wie der als
-   <strength> uebergebene Wert.
+   (Rueckgabewert der Callback-Methode, siehe RegisterHelperObject())
+   mindestens so gross sein wie der als <strength> uebergebene Wert.
 
    Ist <strength> eine Closure, wird diese fuer jeden Helfer
    ausgewertet und entscheidet, ob der Helfer akzeptiert wird. Die
@@ -87,7 +86,7 @@
 SIEHE AUCH
 ==========
 
-   *RegisterHelperObject()*, *UnregisterHelperObject()*,
-   *P_AERIAL_HELPERS*, *P_AQUATIC_HELPERS*, *P_HELPER_OBJECTS*
+   RegisterHelperObject(), UnregisterHelperObject(), P_AERIAL_HELPERS,
+   P_AQUATIC_HELPERS, P_HELPER_OBJECTS
 
 Letzte Aenderung: 9.3.2018, Zesstra
diff --git a/doc/lfun/GetShopItems b/doc/lfun/GetShopItems
index 9c7f28d..1b8cfa5 100644
--- a/doc/lfun/GetShopItems
+++ b/doc/lfun/GetShopItems
@@ -37,4 +37,4 @@
 SIEHE AUCH
 ==========
 
-   *PrintList()*
+   PrintList()
diff --git a/doc/lfun/GuildName b/doc/lfun/GuildName
index 4a4dbdf..080fcf9 100644
--- a/doc/lfun/GuildName
+++ b/doc/lfun/GuildName
@@ -31,7 +31,7 @@
 ==========
 
    Verwandt:
-      *GuildName()*
+      GuildName()
 
    Props:
-      *P_GUILD*
+      P_GUILD
diff --git a/doc/lfun/InternalModifyDefend b/doc/lfun/InternalModifyDefend
index 3762c07..efe50ab 100644
--- a/doc/lfun/InternalModifyDefend
+++ b/doc/lfun/InternalModifyDefend
@@ -50,4 +50,4 @@
 SIEHE AUCH
 ==========
 
-   *InternalModifyAttack()* *Defend()*
+   InternalModifyAttack() Defend()
diff --git a/doc/lfun/IsGuildMember b/doc/lfun/IsGuildMember
index bc29366..20074d9 100644
--- a/doc/lfun/IsGuildMember
+++ b/doc/lfun/IsGuildMember
@@ -61,7 +61,7 @@
 ==========
 
    Verwandt:
-      *GuildName()*
+      GuildName()
 
    Props:
-      *P_GUILD*
+      P_GUILD
diff --git a/doc/lfun/PresentRows b/doc/lfun/PresentRows
index 37e3ab8..e69de29 100644
--- a/doc/lfun/PresentRows
+++ b/doc/lfun/PresentRows
@@ -1,120 +0,0 @@
-
-PresentRows()
-*************
-
-
-FUNKTION
-========
-
-   mixed *PresentRows(object env);
-
-
-DEFINIERT IN
-============
-
-   TEAM_OBJECT (s. <living/team.h>)
-
-
-ARGUMENTE
-=========
-
-   object env
-       Das Environment des gewuenschten Objektes.
-
-
-BESCHREIBUNG
-============
-
-   Mit dieser Funktion bekommt man die aktuellen Teamreihen, die im Argument
-   env anwesend sind, des Teams zurueckgegeben. Ist env kein Objekt, so
-   wird environment(this_player()) als solches angenommen.
-
-
-RUECKGABEWERT
-=============
-
-   Es wird ein mixed-Array zurueckgegeben, dabei sind die einzelnen Reihen
-   selbst wiederum Arrays mit den Spielerobjekten.
-
-
-BEISPIEL
-========
-
-   Ein NPC im Kampf laesst eine Feuerwalze auf ein Team los, welche aber nur
-   Spieler in der ersten und zweiten Teamreihe Schaden zufuegen soll.
-
-   void Attack( object enemy )
-   {
-    ...
-
-    object team = enemy->QueryProp(P_TEAM);
-
-    if ( objectp(team) )
-     {
-      mixed teamrows = team->PresentRows(enemy);
-
-//  Inhalt von "teamrows" zu diesem Zeitpunkt:
-
-//  ({ ({[/dwarf:hauweg]}),({}),({[/elf:spitzohr]}),({}),({}),({}) })
-
-//  In der Umgebung von Zwerg Hauweg steht also noch Elf Spitzohr, und
-zwar //  in der dritten Teamreihe (der hat Glueck gehabt). //  Wenn
-dem Team noch mehr Spieler angehoeren, befinden sie sich gerade //
-nicht in der Umgebung (sprich im selben Raum) wie Hauweg.
-
-            foreach ( i : 2 )
-               {
-                  foreach ( object pl : teamrows[i] )
-                     {
-                        tell_object(pl,"Der Feuerteufel laesst eine
-                        Feuerwalze auf Dich "
-                           "und Dein Team los.n");
-
-                        pl->Defend(200+random(200),({DT_FIRE}),([SP_S
-                        HOW_DAMAGE:1]),TO);
-
-                     }
-
-               }
-
-         }
-
-      else
-         {
-            tell_object(enemy,"Der Feuerteufel laesst eine Feuerwalze
-            auf Dich "
-               "los.n");
-
-            enemy->Defend(200+random(200),({DT_FIRE}),([SP_SHOW_DAMAG
-            E:1]),TO);
-
-         }
-
-      ...
-
-   }
-
-
-BEMERKUNG
-=========
-
-   Man beachte, dass das erste Argument (also Argument 0) die erste
-   Teamreihe ist.
-
-
-SIEHE AUCH
-==========
-
-   Uebersicht: teamkampf
-   Properties: P_TEAM, P_ASSOC_MEMBERS, P_TEAM_ATTACK_CMD,
-               P_TEAM_AUTOFOLLOW, P_TEAM_COLORS, P_TEAM_LEADER,
-               P_TEAM_NEWMEMBER, P_TEAM_WANTED_ROW, P_TEAM_WIMPY_ROW
-   Bewegung:   IsTeamMove, TeamFlee
-   Mitglieder: IsTeamLeader, TeamMembers
-   Kampf:      AssocMember, DeAssocMember, InsertEnemyTeam,
-               SelectNearEnemy, SelectFarEnemy
-   Positionen: PresentPosition, PresentEnemyRows, PresentTeamPosition,
-               SwapRows
-   Sonstiges:  TeamPrefix, teamkampf_intern
-
-Last modified: 16-08-2010, Gabylon
diff --git a/doc/lfun/PreventFollow b/doc/lfun/PreventFollow
index fcfc2a6..f8b0343 100644
--- a/doc/lfun/PreventFollow
+++ b/doc/lfun/PreventFollow
@@ -58,4 +58,4 @@
 SIEHE AUCH
 ==========
 
-   * *AddPursuer()*, *RemovePursuer()*
+   * AddPursuer(), RemovePursuer()
diff --git a/doc/lfun/PrintList b/doc/lfun/PrintList
index 18be079..d4caffc 100644
--- a/doc/lfun/PrintList
+++ b/doc/lfun/PrintList
@@ -54,4 +54,4 @@
 SIEHE AUCH
 ==========
 
-   *GetShopItems()*
+   GetShopItems()
diff --git a/doc/lfun/RemoveExtraLook b/doc/lfun/RemoveExtraLook
index 1bcde43..4323bef 100644
--- a/doc/lfun/RemoveExtraLook
+++ b/doc/lfun/RemoveExtraLook
@@ -81,12 +81,12 @@
 ==========
 
    Verwandt:
-      *AddExtraLook()*, *P_INTERNAL_EXTRA_LOOK*
+      AddExtraLook(), P_INTERNAL_EXTRA_LOOK
 
    Sonstiges:
-      *replace_personal()*, *break_string()*
+      replace_personal(), break_string()
 
    Fuer Spielerobjekte:
-      *P_EXTRA_LOOK*
+      P_EXTRA_LOOK
 
 15. Jun 2017 Gloinson
diff --git a/doc/lfun/SetAttackChats b/doc/lfun/SetAttackChats
index b5a26e9..ac3d108 100644
--- a/doc/lfun/SetAttackChats
+++ b/doc/lfun/SetAttackChats
@@ -114,12 +114,12 @@
 ==========
 
    Verwandt:
-      *SetChats()*, *AddSpell()*
+      SetChats(), AddSpell()
 
    Props:
-      *P_CHAT_CHANCE*
+      P_CHAT_CHANCE
 
    Sonstiges:
-      *send_room()*, *process_string()*
+      send_room(), process_string()
 
 3. April 2017 Gloinson
diff --git a/doc/lfun/SetChats b/doc/lfun/SetChats
index ee6d04b..e99314b 100644
--- a/doc/lfun/SetChats
+++ b/doc/lfun/SetChats
@@ -145,12 +145,12 @@
 ==========
 
    Verwandt:
-      *SetAttackChats()*
+      SetAttackChats()
 
    Props:
-      *P_CHAT_CHANCE*
+      P_CHAT_CHANCE
 
    Sonstiges:
-      *send_room()*, *process_string()*
+      send_room(), process_string()
 
 3. April 2017 Gloinson
diff --git a/doc/lfun/create b/doc/lfun/create
index 03fc91a..066ee55 100644
--- a/doc/lfun/create
+++ b/doc/lfun/create
@@ -7,7 +7,6 @@
 ========
 
    protected void create();
-   void create();
 
 
 DEFINIERT IN
@@ -25,15 +24,15 @@
 BESCHREIBUNG
 ============
 
-   Diese Funktion wird aufgerufen, wenn ein Objekt geladen oder geclont
-   wird.
-   In dieser Funktion wird das Objekt initialisiert und konfiguriert.
-   Waehrend des create() kann es einen this_player()/this_interactive()
-   geben, muss aber nicht!
-   Im create() hat das Objekt noch kein environment().
-   create() wird nur gerufen, wenn das Objekte geclont oder explizit geladen
-   wird. Wenn es aufgrund eines inherit in einem anderen Objekt vom Driver
-   geladen wird, wird das create() nicht ausgefuehrt (s. create_super()).
+   Diese Funktion wird aufgerufen, wenn ein Objekt geladen oder
+   geclont wird. In dieser Funktion wird das Objekt initialisiert und
+   konfiguriert. Waehrend des create() kann es einen
+   this_player()/this_interactive() geben, muss aber nicht! Im
+   create() hat das Objekt noch kein environment(). create() wird nur
+   gerufen, wenn das Objekte geclont oder explizit geladen wird. Wenn
+   es aufgrund eines inherit in einem anderen Objekt vom Driver
+   geladen wird, wird das create() nicht ausgefuehrt (s.
+   create_super()).
 
 
 RUeCKGABEWERT
@@ -45,20 +44,24 @@
 BEMERKUNGEN
 ===========
 
-   Erbt man von anderen Objekten, so besteht die erste Aktion innerhalb
-   von create() normalerweise darin, in diesen Objekten create()
-   aufzurufen.
-   Die Funktion kann protected oder static sein (aber nicht private). Es
-   duerfte fuer die meisten Objekte sinnvoll sein, create() protected zu
-   deklarieren.
+   Erbt man von anderen Objekten, so besteht die erste Aktion
+   innerhalb von create() normalerweise darin, in diesen Objekten
+   create() aufzurufen.
 
-   Um Speicher zu sparen, kann man bei Blueprints von der Konfigurierung
-   absehen (siehe Beispiel). Dies sollte man allerdings nicht bei Objekten
-   machen, von denen keine Clones erzeugt werden sollen (zB. bei Raeumen).
+   In altem Code wird create() haeufig ohne Sichtbarkeitsmodifikator
+   verwendet, es sollte aber immer protected gewaehlt werden, es gibt
+   keinen guten Grund create() mehr als einmal zu rufen, im Gegenteil,
+   wird das geerbte create() mehrfach gerufen kann das zu schwer zu
+   findenden Bugs fuehren.
 
-   Man sollte bei Abbruch des create() in BP unbedingt set_next_reset(-1);
-   rufen, da sonst die (nicht konfigurierte) BP resetten kann und dann
-   buggt.
+   Um Speicher zu sparen, kann man bei Blueprints von der
+   Konfigurierung absehen (siehe Beispiel). Dies sollte man allerdings
+   nicht bei Objekten machen, von denen keine Clones erzeugt werden
+   sollen (zB. bei Raeumen).
+
+   Man sollte bei Abbruch des create() in BP unbedingt
+   set_next_reset(-1); rufen, da sonst die (nicht konfigurierte) BP
+   resetten kann und dann buggt.
 
 
 BEISPIELE
@@ -66,18 +69,19 @@
 
    Ein Gegenstand wuerde wie folgt konfiguriert:
 
-   inherit "std/thing";
+   inherit "/std/thing";
 
    #include <properties.h>
 
-   create()
+   protected void create()
    {
      // Wenn wir die Blueprint sind: NICHT konfigurieren!
-     // Bei normalen Raeumen oder Transportern sind diese beiden
+     // Bei normalen Raeumen oder Transportern sind diese
      // Zeilen wegzulassen!!!
-     if (!clonep(this_object())) {
-         set_next_reset(-1);    // wichtig, damit die BP nicht resettet.
-         return;
+     if (!clonep(this_object()))
+     {
+       set_next_reset(-1);    // wichtig, damit die BP nicht resettet.
+       return;
      }
 
      // Ansonsten die allgemeinen Eigenschaften von /std/thing
@@ -97,8 +101,6 @@
 SIEHE AUCH
 ==========
 
-   create(L), reset(L)
-   hook(C), create(H), create_ob(H), create_super(H, reset(H)
-   create(A), reset(A)
+   create(), reset(), create_super() set_next_reset()
 
-22.10.2007, Zesstra
+Letzte Aenderung: 27.10.2018, Bugfix
diff --git a/doc/lfun/init b/doc/lfun/init
index 813c8f3..8a2688f 100644
--- a/doc/lfun/init
+++ b/doc/lfun/init
@@ -107,7 +107,7 @@
 SIEHE AUCH
 ==========
 
-   *exit()*, *AddCmd()*, *NotifyInsert()*
+   exit(), AddCmd(), NotifyInsert()
 
    add_action(E)
 
diff --git a/doc/lfun/list b/doc/lfun/list
index 41b989f..4148dc0 100644
--- a/doc/lfun/list
+++ b/doc/lfun/list
@@ -41,4 +41,4 @@
 SIEHE AUCH
 ==========
 
-   *PrintList()*, *AddCmd()*
+   PrintList(), AddCmd()
diff --git a/doc/lfun/obsolete/DoList b/doc/lfun/obsolete/DoList
index 17cc419..2119f05 100644
--- a/doc/lfun/obsolete/DoList
+++ b/doc/lfun/obsolete/DoList
@@ -36,4 +36,4 @@
 SIEHE AUCH
 ==========
 
-   *PrintList()*
+   PrintList()
diff --git a/doc/lfun/obsolete/GetList b/doc/lfun/obsolete/GetList
index 2e58523..e066273 100644
--- a/doc/lfun/obsolete/GetList
+++ b/doc/lfun/obsolete/GetList
@@ -36,4 +36,4 @@
 SIEHE AUCH
 ==========
 
-   *GetShopItems()*
+   GetShopItems()
diff --git a/doc/lfun/obsolete/extra_look b/doc/lfun/obsolete/extra_look
index 6d134a9..9d1ac15 100644
--- a/doc/lfun/obsolete/extra_look
+++ b/doc/lfun/obsolete/extra_look
@@ -27,4 +27,4 @@
 SIEHE AUCH
 ==========
 
-   *AddExtraLook()*, *P_EXTRA_LOOK*
+   AddExtraLook(), P_EXTRA_LOOK
diff --git a/doc/lfun/remove b/doc/lfun/remove
index 78d8ada..ea982b1 100644
--- a/doc/lfun/remove
+++ b/doc/lfun/remove
@@ -60,6 +60,6 @@
 SIEHE AUCH
 ==========
 
-   "../efun/destruct", *U_REQ*, *P_AMOUNT*
+   *../efun/destruct*, U_REQ, P_AMOUNT
 
 Letzte Aenderung: 24.07.2018, Bugfix
