diff --git a/doc/efun/md5 b/doc/efun/md5
index a559767..745bf87 100644
--- a/doc/efun/md5
+++ b/doc/efun/md5
@@ -1,38 +1,35 @@
-VERALTET
+OBSOLETE
 SYNOPSIS
         string md5(string arg [, int iterations])
-        string md5(bytes  arg [, int iterations])
+        string md5(bytes arg [, int iterations])
         string md5(int *  arg [, int iterations])
 
-BESCHREIBUNG
-        Berechnet den MD5-Hashwert von <arg>.
-        Das Argument kann ein String, eine Bytefolge oder ein Array von
-        Zahlen sein (die als Folge von Bytes betrachtet wird, wobei
-        immer nur die untersten 8 Bits Verwendung finden). Falls ein String
-        uebergeben wurde, so wird dieser in eine UTF-8-Bytefolge konvertiert
-        und davon der Hash berechnet.
+DESCRIPTION
+        Create and return a MD5 message digest from <arg>.
+        <arg> may be a string, a byte sequence, or an array of numbers
+        (each considered to be a byte, ignoring all but the lowest 8 bits).
+        A string is converted to a UTF-8 byte sequence of which then the
+        digest will be created.
 
-        Das Ergebnis wird als 32-stelliger Hexadezimalwert geliefert.
+        If <iterations> is given as a number greater than 0, it is
+        the number of iterations used in the digest calculation. If omitted,
+        the driver executes just one iteration.
 
-        Ist das <iterations> Argument eine Zahl groesser 0, berechnet der
-        Driver den Digest mit diese Anzahl an Wiederholungen. Fehlt die
-        Angabe, fuehrt der Driver die Digest-Berechnung einmal aus.
-        
-        Jede Iteration kostet 5 Evalution-Ticks.
+        The efun costs 5 ticks per iteration.
 
-BEISPIELE
+EXAMPLES
         string s;
 
-        s = md5("Hallo");
+        s = md5("Hello");
         s = md5( ({ 'H', 'e', 'l', 'l', 'o' }) )
         s = md5( ({ 'H', 'e', 'l', 'l', 'o' }), 2 )
 
-GESCHICHTE
-        Eingefuehrt in LDMud 3.2.9.
-        LDMud 3.2.12 fuehrte Zaehlenarrays als Argument ein, also auch
-          die Anzahl der Wiederholungen.
-        LDMud 3.3.717 fuehrte die Iterations-basierte Evaluationskosten ein.
-        Seit LDMud 3.3.719 abgeloest durch hash().
+HISTORY
+        Introduced in LDMud 3.2.9.
+        LDMud 3.2.12 added number arrays as argument, and the number of
+        interations.
+        LDMud 3.3.717 added the iteration-based evaluation cost.
+        Since LDMud 3.3.719 obsoleted by hash().
 
-SIEHE AUCH
+SEE ALSO
         crypt(E), md5_crypt(E), sha1(E), hash(E), hmac(E)
