diff --git a/doc/efun/clonep b/doc/efun/clonep
index 6e63cd2..06534d2 100644
--- a/doc/efun/clonep
+++ b/doc/efun/clonep
@@ -4,25 +4,27 @@
         int clonep(string obj)
         int clonep(mixed  arg)
 
-BESCHREIBUNG
-        Liefert 1, wenn das angegebene Objekt ein Klon ist, ansonsten 0.
-        Das Objekt kann dabei auch durch seinen Objekt-Namen angegeben werden.
-        Wird kein Argument uebergeben, so wird this_object() getestet.
-        Liefert 0, wenn das Argument von einem anderen Typ ist.
-        Ein Objekt, dessen Programm mittels replace_program() ersetzt wurde,
-        zaehlt nicht als Klon.
+DESCRIPTION
+        The efun returns 1 if <obj> is a clone, and 0 if it is not.
+        The <obj> can be given as the object itself, or by its name.
+        If <obj> is omitted, the current object is tested.
+        Arguments of other types return 0.
+        Objects with replaced programs no longer count as clones.
 
-BEISPIELE
+EXAMPLES
         object o;
-        o = clone_object("/obj/ding");
-        write(clonep(o));                          --> schreibt "1"
-        write(clonep("/obj/ding"))                 --> schreibt "0"
+        o = clone_object("/std/thing");
+        write(clonep(o));                           --> writes "1"
+        write(clonep("/std/thing"))                 --> writes "0"
 
-        (Im COMPAT_MODE "obj/ding" als Dateinahmen benutzen)
+        (In COMPAT_MODE use "std/thing" as the filename)
 
-GESCHICHTE
-        Eingefuehrt in LDMud 3.2.6, geaendert in 3.2.7, so dass Objekte mit
-        ersetzten Programmen nicht mehr als Klone zaehlen.
+HISTORY
+        Introduced in LDMud 3.2.6, changed in 3.2.7 so that objects
+        with replaced programs no longer count as clones.
 
-SIEHE AUCH
-        load_name(E), clone_object(E), clones(E)
+SEE ALSO
+        load_name(E), clone_object(E), clones(E), bytesp(E),
+        closurep(E), coroutinep(E), floatp(E), intp(E), lpctypep(E),
+        lwobjectp(E), mappingp(E), objectp(E), pointerp(E), referencep(E),
+        stringp(E), structp(E), symbolp(E)
