diff --git a/doc/efun/implode b/doc/efun/implode
index 6d11762..7f0b3b5 100644
--- a/doc/efun/implode
+++ b/doc/efun/implode
@@ -1,27 +1,25 @@
 SYNOPSIS
-        string implode(mixed *arr, string del)
-        bytes  implode(mixed *arr, bytes  del)
+        string implode(string *arr, string del)
+        bytes implode(bytes *arr, bytes del)
 
-BESCHREIBUNG
-	Setzt alle Zeichenketten (Strings) aus dem Feld (Array) arr zu
-        einer Zeichenkette zusammen und fuegt dabei die Zeichenkette del
-        zwischen je zwei Elementen ein. Elemente aus dem Feld arr, welche
-        keine Zeichenketten sind, werden ignoriert. Mit Bytefolgen wird
-        analog verfahren.
+DESCRIPTION
+        Concatenate all strings found in array arr, with the string
+        del between each element. Only strings are used from the array.
+        Works similar with arrays of byte sequences.
 
-BEISPIELE
-	Funktion                                        Rueckgabewert
+EXAMPLES
+        function                                        returns
         -------------------------------------------------------------------
-	implode(({ "foo", "bar", "" }), "*")            "foo*bar*"
-	implode(({ "a", 2, this_object(), "c" }), "b")  "abc"
+        implode(({ "foo", "bar", "" }), "*")            "foo*bar*"
+        implode(({ "a", 2, this_object(), "c" }), "b")  "abc"
 
-	Kann zusammen mit explode() als Funktion zum Ersetzen von
-        Zeichenketten verwendet werden:
+        Together with explode() this can be used as a search and replace
+        function of strings:
         implode(explode("a short text", " "), "_")      "a_short_text"
 
-	Heutzutage kann man stattdessen auch
-	    regreplace("a short text", " ", "_", 1)
-	verwenden.
+        But nowadays you can also use
+            regreplace("a short text", " ", "_", 1)
+        instead.
 
-SIEHE AUCH
+SEE ALSO
         explode(E), regreplace(E)
