diff --git a/doc/efun/mkmapping b/doc/efun/mkmapping
index 75cf827..477d471 100644
--- a/doc/efun/mkmapping
+++ b/doc/efun/mkmapping
@@ -1,37 +1,30 @@
 SYNOPSIS
-        mapping mkmapping(mixed *arr1, mixed *arr2, mixed *arr3, ...);
-        mapping mkmapping(struct st);
+        mapping mkmapping(mixed *arr1, mixed *arr2, mixed *arr3, ...)
+        mapping mkmapping(struct st)
 
 BESCHREIBUNG
         Liefert ein Mapping mit Keys aus <arr1> und Datenelementen aus
         <arr2>, <arr3>.... Dem Key <arr1[0]> werden die Datenelemente
         <arr2[0]>, <arr3[0]>... zugeordnet. Wenn die Datenarrays
-        ungleich gross sind, enthaelt das Mapping nur so viele Eintraege,
+        ungleich gross sind, enthaelt das Mapping nur so viele Eintraege
         wie im kleinsten Datenarray enthalten sind.
 
         Die zweite Form konvertiert die angegebene struct <st> in ein Mapping.
         Hierbei werden die Namen des jeweiligen Elementes in der struct als
-        als Schluessel.
+        Schluessel verwendet.
 
-        Gewoehnlich werden Mappings erweitert, indem einfach neue Elemente
-        eingefuegt werden. Diese Funktion ist nuetzlich, wenn der
-        ungefaehr benoetigte Speicherplatz bereits vorher bekannt ist,
-        um so den Overhead bei der Speicherallokation zu minimieren.
-        Allenfalls zu viel allozierter Speicher wird freigegeben, sobald
-        die Funktion, die die mkmapping() Anweisung enthaelt, beendet ist.
-
-BESIPIEL
-        mkmapping( ({ 1, 2 }), ({ 10, 11 }), ({ 20, 21, 22}));
+BEISPIELE
+        mkmapping( ({ 1, 2 }), ({ 10, 11 }), ({ 20, 21, 22}))
           liefert ([ 1:10;20, 2:11;21 ])
 
-        struct s { int a, b, c; };
-        mkmapping( (<s> 1, ({ 2, 3 }), 3 )
+        struct s { int a; int *b; int c; };
+        mkmapping( (<s> a: 1, b: ({ 2, 3 }), c: 3 )
           liefert ([ "a":1, "b":({2,3}), "c":3 ])
 
-AeNDERUNGEN
+GESCHICHTE
         LDMud 3.3.433 ermoeglichte die Konversion von structs.
 
-VERGLEICHE
+SIEHE AUCH
         mappings(LPC), mappingp(E), m_indices(E), m_values(E),
         m_add(E), m_delete(E), sizeof(E), widthof(E), unmkmapping(E),
         to_struct(E)
