diff --git a/doc/efun/trim b/doc/efun/trim
index d5c58fa..c14e6c0 100644
--- a/doc/efun/trim
+++ b/doc/efun/trim
@@ -1,33 +1,31 @@
 SYNOPSIS
         #include <strings.h>
 
-        string trim(string str)
-        string trim(string str, int where)
-        string trim(string str, int where, string char)
+        string trim(string s)
+        string trim(string s, int where)
+        string trim(string s, int where, int ch)
+        string trim(string s, int where, string ch)
 
-BESCHREIBUNG
-        Entfernt alle vorausgehenden und abschliessenden Zeichen <char> in
-        einem String <str> und gibt den neuen String zurueck.
+DESCRIPTION
+        Remove all leading and trailing characters <ch> from the string
+        <s> and return the new string.
 
-        <char> kann entweder ein oder mehrere Zeichen sein. Wird <char> nicht
-        angegeben, wird standardmaessig der Leerschlag " \t" genutzt.
+        <ch> may be given as a single character, or a string of characters.
+        If <ch> is not given, it defaults to the whitespace " \t".
 
-        Mit <where> kann angegeben werden, wo Zeichen entfernt werden:
+        <where> can be used to modify where the characters are removed:
 
-            TRIM_LEFT   (1):        entfernt alle vorausgehenden
-                                    Zeichen <char>
-            TRIM_RIGHT  (2):        entfernt alle abschliessenden
-                                    Zeichen <char>
-            TRIM_BOTH   (3 oder 0): entfernt sowohl vorausgehende als auch
-                                    abschliessende Zeichen <char>
+          TRIM_LEFT  (1):      remove the leading characters
+          TRIM_RIGHT (2):      remove the trailing characters
+          TRIM_BOTH  (3 or 0): remove both leading and trailing characters
 
-BEISPIELE
-        trim("    1234    ");                       ergibt: "1234"
-        trim("    1234    ", TRIM_RIGHT);           ergibt: "    1234"
-        trim("    1234    ", TRIM_BOTH, " 1");      ergibt: "234"
+EXAMPLES
+        trim("   1234   ")                  --> "1234"
+        trim("   1234   ", TRIM_RIGHT)      --> "   1234"
+        trim("   1234   ", TRIM_BOTH, " 1") --> "234"
 
-GESCHICHTE
-        Eingefuehrt in LDMud 3.2.7.
+HISTORY
+        Introduced in LDMud 3.2.7.
 
-SIEHE AUCH
+SEE ALSO
         regreplace(E)
