diff --git a/doc/efun/unmkmapping b/doc/efun/unmkmapping
index 6eedb60..a537f82 100644
--- a/doc/efun/unmkmapping
+++ b/doc/efun/unmkmapping
@@ -1,27 +1,30 @@
 SYNOPSIS
         mixed * unmkmapping(mapping map)
 
-BESCHREIBUNG
-        Wandelt das Mapping <map> in ein Array von Arrays aus, das alle Keys
-        und Werte von <map> enthaelt und gibt dieses Array zurueck.
+DESCRIPTION
+        Take mapping <map> and return an array of arrays with the keys
+        and values from the mapping.
 
-        Das Resultat von unmkmapping() hat die Form ({ keys[], data0[],
-        data1[] ... }), wobei keys[] ein Array aller Keys ist, data0[] ein
-        Array mit allen Werten aus der ersten Spalte, data1[] ein Array mit
-        allen Werten aus der zweiten Spalte etc. Das heisst, dass die
-        Werte von key[x] in data0[x], data1[x] usw. gespeichert sind.
+        The return array has the form ({ keys[], data0[], data1[], ... }),
+        with keys[] being the array of all keys, data0[] the array of
+        all values in the first column, data1[] the array of all values
+        in the second column, etc. In particular, the data for key[x]
+        is stored in data0[x], data1[x], etc.
 
-        unmkmapping() ist die Umkehrfunktion von mkmapping(), sodass gilt:
+        unmkmapping() is inverse to mkmapping(), so that
 
             apply(#'mkmapping, unmkmapping(m)) == m
 
-BEISPIELE
+        holds.
+
+EXAMPLES
         mapping m = ([ 1:10;20, 2:11;21 ]);
-        unmkmapping(m) ergibt: ({ ({1, 2}) , ({10, 11}) , ({20, 21}) })
+        unmkmapping(m)
+          --> returns ({ ({1, 2}), ({ 10, 11 }), ({ 20, 21 }) })
 
-GESCHICHTE
-        Eingefuehrt in LDMud 3.2.6.
+HISTORY
+        Introduced in LDMud 3.2.6.
 
-SIEHE AUCH
-        mappings(LPC), mappingp(E), m_indices(E), m_values(E), m_delete(E),
-        sizeof(E), widthof(E).
+SEE ALSO
+        mappings(LPC), mappingp(E), m_indices(E), m_values(E),
+        m_delete(E), sizeof(E), widthof(E).
