diff --git a/doc/efun/member b/doc/efun/member
index 2ef5b42..918efc3 100644
--- a/doc/efun/member
+++ b/doc/efun/member
@@ -2,22 +2,20 @@
         int member(mixed *array, mixed elem [, int start])
         int member(string s, int elem [, int start])
         int member(bytes s, int elem [, int start])
-        int member(mapping map, mixed key)
+        int member(mapping m, mixed key)
 
-BESCHREIBUNG
-        Fuer Arrays, String und Bytefolgen liefert member() den Index
-        des ersten Auftretens von <elem> in <arg>. Ist <elem> nicht
-        in <arg> enthalten, wird -1 zurueck gegeben.
+DESCRIPTION
+        For arrays, strings and byte sequences, returns the index of the
+        first occurance of second arg in the first arg, or -1 if none found.
+        If <start> is given and non-negative, the search starts at
+        that position. A start position beyond the end of the string
+        or array will cause the efun to return -1.
 
-        Ist <start> als Zahl >= 0 gegeben, beginnt die Suche ab der
-        angegebenen Position. Eine Startposition groesser als die
-        Laenge des Strings/Arrays liefert stets das Resultat -1.
+        For mappings it checks, if key is present in mapping m and
+        returns 1 if so, 0 if key is not in m.
 
-        Fuer Mapping prueft member(), ob <key> in <map> enthalten ist und
-        liefert 1 zurueck falls ja, 0 sonst.
+HISTORY
+        LDMud 3.3.556 added the <start> parameter.
 
-GESCHICHTE
-        LDMud 3.3.556 fuegte den <start>-Parameter hinzu.
-
-SIEHE AUCH
+SEE ALSO
         rmember(E), mappings(LPC)
