diff --git a/doc/efun/deep_copy b/doc/efun/deep_copy
index 460d90a..1a4d7e1 100644
--- a/doc/efun/deep_copy
+++ b/doc/efun/deep_copy
@@ -1,27 +1,34 @@
 SYNOPSIS
         mixed deep_copy(mixed arg)
 
-BESCHREIBUNG
-        Erzeugt eine echte Kopie von <arg> und liefert diese zurueck. Fuer
-        Arrays und Mappings bedeutet dies, dass ein neues Array oder Mapping
-        erzeugt wird, das exakte Kopien der Eintraege des Originals enthaelt.
-        Eingebettete Arrays und Mappings werden ebenso echt kopiert.
+DESCRIPTION
+        Create a deep copy of <arg> and return it. For arrays, mappings,
+        structs and lightweight objects this means that a new array, mapping,
+        struct resp. lightweight object is created with copies of the
+        original content. Embedded arrays, mappings, structs or lightweight
+        objects are truly copied, too.
 
-        Fuer andere Typen als Mappings und Arrays bewirkt diese Funktion
-        nichts.
+        For other values this function is a no-op.
 
-        Wenn im Driver DYNAMIC_COST definiert ist, zaehlt jedes eingebettete
-        Mapping oder Array zu den Evaluationskosten sowohl in der Groesse als
-        auch in der Einbettungstiefe.
+        If a lightweight objects was copied, the H_CREATE_LWOBJECT_COPY hook
+        will be called to finish initialization of the lightweight object.
 
-BEISPIELE
+        If DYNAMIC_COST is defined, every nested array, mapping, struct and
+        lightweight objects counts towards the evaluation cost in both size
+        and nesting depth.
+
+EXAMPLES
         mixed *a, *b;
+
         a = ({ 1, ({ 21, 22 }) });
         b = deep_copy(a);
         a[0] = -1; a[1][0] = -21;
-         --> a ist jetzt   ({ -1, ({ -21, 22 }) })
-             b bleibt      ({  1, ({  21, 22 }) })
+         --> a is now   ({ -1, ({ -21, 22 }) })
+             b is still ({  1, ({  21, 22 }) })
 
-GESCHICHTE
-        Eingefuehrt in LDMud 3.2.6.
-        LDMud 3.2.9 fuegte die dynamischen Kosten zur Efun hinzu.
+HISTORY
+        Introduced in LDMud 3.2.6.
+        LDMud 3.2.9 added the dynamic cost to the efun.
+
+SEE ALSO
+        copy(E)
