diff --git a/doc/efun/copy b/doc/efun/copy
index be041ac..8ee701b 100644
--- a/doc/efun/copy
+++ b/doc/efun/copy
@@ -1,24 +1,29 @@
 SYNOPSIS
         mixed copy(mixed arg)
 
-BESCHREIBUNG
-        Erzeugt eine flache Kopie von <arg> und liefert diese zurueck. Fuer
-        Arrays und Mappings heisst das, dass neue Arrays bzw. Mappings erzeugt
-        werden, die Kopien der Elemente des Originals enthalten. Eingebettete
-        Arrays und Mappings werden jedoch als Referenz uebergeben!
+DESCRIPTION
+        Create a shallow 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 copied by reference!
 
-        Fuer andere Werte von <arg> bewirkt diese Funktion nichts.
+        For other values this function is a no-op.
 
-BEISPIELE
+        If a lightweight objects was copied, the H_CREATE_LWOBJECT_COPY hook
+        will be called to finish initialization of the lightweight object.
+
+EXAMPLES
         mixed *a, *b;
+
         a = ({ 1, ({ 21, 22 }) });
         b = copy(a);
         a[0] = -1; a[1][0] = -21;
-            --> a ist nun ({ -1, ({ -21, 22 }) })
-                b ist nun ({  1, ({ -21, 22 }) })
+         --> a is now ({ -1, ({ -21, 22 }) })
+             b is now ({  1, ({ -21, 22 }) })
 
-GESCHICHTE
-        Eingefuehrt in LDMud 3.2.6.
+HISTORY
+        Introduced in LDMud 3.2.6.
 
-SIEHE AUCH
+SEE ALSO
         deep_copy(E)
