diff --git a/doc/efun/save_object b/doc/efun/save_object
index 2ec83b2..cb17764 100644
--- a/doc/efun/save_object
+++ b/doc/efun/save_object
@@ -2,48 +2,46 @@
         int    save_object(string name [, int format])
         string save_object([int format])
 
-BESCHREIBUNG
-        Codiert die speicherbaren Variablen des aktuellen Objekts in einen
-        String.
+DESCRIPTION
+        Encode the saveable variables of the current object into a string.
 
-        In der ersten Form wir der String in die Datei <name> geschrieben. Eine
-        Endung ".c" in <name> wird entfernt, dafuer kann eine Endung ".o"
-        durch das Masterobjekt angefuegt werden, waehrend der Ueberpruefung
-        durch valid_read(). Die Efun save_object() liefert 0, wenn die
-        Speicherdatei erfolgreich erstellt wurde, sonst eine Zahl ungleich 0,
-        wenn ein nicht schwerwiegendee Fehler aufgetreten ist (die Datei
-        konnte nicht geschrieben werden oder das aktuelle Objekt wurde
-        inzwischen zerstoert).
+        In the first form, the string is written to the file <name>.
+        A suffix ".c" will be stripped from the name, the suffix ".o"
+        may be added by the master object during the check in
+        valid_read(). Result is 0 if the save file could be created,
+        and non-zero on a non-fatal error (file could not be written,
+        or current object is destructed).
 
-        In der zweiten Form wird der String direkt zurueck gegeben. Wenn das
-        Objekt zerstoert wurde, wird 0 zurueck gegeben. In beiden Faellen kann
-        durch das optionale Argument <format> das Format der Speicherdatei
-        angegeben werden:
+        In the second form the string is returned directly. If the
+        object is destructed, the result is 0.
 
-            -1: das normale Format des Treibers (Standard)
-             0: das Originalformat nach Amylaar's LPMud und LDMud <=3.2.8
-             1: LDMud >= 3.2.9: Non-Lambda Closures, Symbole und gequotete
-                Arrays koennen gespeichert werden
-             2: LDMUd >= 3.5.0: Gleitkommazahlen werden in einem neuen Format
-                geschrieben, welches kompakter ist die Gleitkommazahlen aus
-                3.5.x verlustfrei speichern kann.
-        
-        Es wird empfohlen, die Angabe des Formats wegzulassen oder in Version
-        2 (oder hoeher) zu speichern.
+        In both forms, the optional <format> argument determines the
+        format of the savefile to be written:
 
-        Eine Variable wird als 'speicherbar' betrachtet, wenn sie nicht als
-        'nosave' oder 'static' deklariert ist.
+           -1: use the driver's native format (default).
+            0: original format, used by Amylaar LPMud and LDMud <= 3.2.8 .
+            1: LDMud >= 3.2.9: non-lambda closures, symbols, quoted arrays
+                 can be saved.
+            2: LDMud >= 3.5.0: floats are stored in a different way, which is
+                 more compact and can store the new float losslessly.
+	    3: LDMud >= 3.5.0: can also save lvalues references (without it,
+	         the plain rvalue will be saved).
 
-GESCHICHTE
-        Seit LDMud 3.2.8 liefert save_object() einen fixen Wert bei Erfolg.
-        Das direkte Abspeichern in einen String wurde in LDMud 3.2.8
-            eingefuehrt, wird aber in Zukunft eventuell in eine separate Efun
-            umgezogen.
-        LDMud 3.2.9 ergaenzte die Funktion um das Speichern von Non-Lambda
-            Closures, Symbolen und gequoteten Arrays. Dazu wurde ein neues
-            Format fuer die Speicherdatei eingefuehrt.
-        LDMud 3.2.10 fuehrte das Argument <format> ein.
-        LDMud 3.5.0 fuehrte Formatversion 2 ein.
+        It is recommended to use version 3 or higher.
 
-SIEHE AUCH
+        A variable is considered 'saveable' if it is not declared
+        as 'nosave' or 'static'.
+
+        Only lfuns bound to the current object can be saved.
+
+HISTORY
+        Since LDMud 3.2.8, save_object() returns a success value.
+          The direct encoding into a string was added in LDMud 3.2.8, but
+          may be moved into a different efun in future.
+        LDMud 3.2.9 added the saving of non-lambda closures, symbols,
+          and quoted arrays, using the new savefile format version 1.
+        LDMud 3.2.10 added the <format> argument.
+        LDMud 3.5.0 added savefile format version 2 and 3.
+
+SEE ALSO
         restore_object(E), save_value(E)
