diff --git a/doc/efun/gmtime b/doc/efun/gmtime
index ff0303f..10ae708 100644
--- a/doc/efun/gmtime
+++ b/doc/efun/gmtime
@@ -4,35 +4,35 @@
         int * gmtime(int clock)
         int * gmtime(int *uclock)
 
-BESCHREIBUNG
-        Interpretiert <clock> als Anzahl Sekunden seit dem 01. Januar 1970,
-        00:00:00 Uhr und gibt die Zeit in UTC in einer schoenen Struktur
-        aus. Wird <clock> nicht angegeben, wird stattdessen time() verwendet.
+DESCRIPTION
+        Interpret the argument clock as number of seconds since Jan,
+        1st, 1970, 0:00, and return the time in UTC in a nice structure.
+        if <clock> is not specified, time() is used as default.
 
-        Alternativ kann auch ein Array mit zwei Elementen angegeben werden,
-        wie es von uclock() geliefert wird: das erste Element wird
-        wie <clock> interpretiert, das zweite Element bezeichnet die
-        Mikrosekunden in der aktuellen Sekunde. Dieses zweite Element wird
-        ignoriert.
+        Alternatively, accept an array of two ints: the first is <clock>
+        value as in the first form, the second int is the number of
+        microseconds elapsed in the current second, which is ignored.
 
-        Das Resultat von gmtime() ist ein Array, das folgende Werte beinhaltet:
-            int TM_SEC   (0) : Sekunden (0..59)
-            int TM_MIN   (1) : Minuten (0..59)
-            int TM_HOUR  (2) : Stunden (0..23)
-            int TM_MDAY  (3) : Tag im Monat (1..31)
-            int TM_MON   (4) : Monat im Jahr (0..11)
-            int TM_YEAR  (5) : Jahr (z.B.  2001)
-            int TM_WDAY  (6) : Wochentag (Sunday = 0)
-            int TM_YDAY  (7) : Tag im Jahr (0..365)
-            int TM_ISDST (8) : TRUE: Daylight saving time
+        The result is an array of integers:
 
-BEISPIELE
-        printf("Heute ist %s\n", ({ "Sonntag", "Montag", "Dienstag",
-            "Mittwoch",        "Donnerstag", "Freitag", "Samstag"})
-            [gmtime()[TM_WDAY]]);
+          int TM_SEC   (0) : Seconds (0..59)
+          int TM_MIN   (1) : Minutes (0..59)
+          int TM_HOUR  (2) : Hours (0..23)
+          int TM_MDAY  (3) : Day of the month (1..31)
+          int TM_MON   (4) : Month of the year (0..11)
+          int TM_YEAR  (5) : Year (e.g.  2001)
+          int TM_WDAY  (6) : Day of the week (Sunday = 0)
+          int TM_YDAY  (7) : Day of the year (0..365)
+          int TM_ISDST (8) : TRUE: Daylight saving time
 
-GESCHICHTE
-        Eingefuehrt in LDMud 3.2.9.
 
-SIEHE AUCH
+EXAMPLES
+        printf("Today is %s\n",
+               ({ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
+                  "Friday", "Saturday" })[gmtime()[TM_WDAY]]);
+
+HISTORY
+        Introduced in LDMud 3.2.9.
+
+SEE ALSO
         ctime(E), localtime(E), time(E), utime(E)
