diff --git a/doc/sefun/old_explode b/doc/sefun/old_explode
index 6b13d8e..357e838 100644
--- a/doc/sefun/old_explode
+++ b/doc/sefun/old_explode
@@ -1,28 +1,53 @@
-FUNKTION:
-	string *old_explode(string str, string del)
 
-ARGUMENTE:
-	str - Der String, der aufgespaltet werden soll.
-	del - Der String, nach dem str aufgespalten werden soll.
+old_explode()
+*************
 
-BESCHREIBUNG:
-	Durch Ausschneiden von del wird der String str in ein Array von Strings
-	zerlegt. Dieses Array wird anschliessend zuruckgegeben.
 
-RUECKGABEWERT:
-	Das Array mit den Bestandteilen der Zerlegung.
+FUNKTION
+========
 
-BEMERKUNGEN:
-	Das Verhalten von old_explode() entspricht dem dem explode()-Verhalten,
-	das in /doc/efun/explode als "altes" Verhalten bezeichnet wird, d.h.
-	Leerstrings an Anfang und Ende des zerlegten Strings werden entfernt!
+   string *old_explode(string str, string del)
 
-BEISPIELE:
-	strs = explode( "nimm alles", " "); => strs = ({ "nimm", "alles" })
-	strs = explode( "abc", "abc" );     => strs = ({ })
-	strs = explode( "ein test", "" );   => strs = ({ "ein test" })
-	strs = explode( "a b", "a");        => strs = ({ " b" });
 
-SIEHE AUCH:
-	explode(E), new_explode(E), efun::explode(E), sscanf(E)
-        implode(E), regexplode(E)
+ARGUMENTE
+=========
+
+   str - Der String, der aufgespaltet werden soll.
+   del - Der String, nach dem str aufgespalten werden soll.
+
+
+BESCHREIBUNG
+============
+
+   Durch Ausschneiden von del wird der String str in ein Array von Strings
+   zerlegt. Dieses Array wird anschliessend zuruckgegeben.
+
+
+RUECKGABEWERT
+=============
+
+   Das Array mit den Bestandteilen der Zerlegung.
+
+
+BEMERKUNGEN
+===========
+
+   Das Verhalten von old_explode() entspricht dem dem explode()-Verhalten,
+   das in /doc/efun/explode als "altes" Verhalten bezeichnet wird, d.h.
+   Leerstrings an Anfang und Ende des zerlegten Strings werden entfernt!
+
+
+BEISPIELE
+=========
+
+   strs = explode( "nimm alles", " "); => strs = ({ "nimm", "alles" })
+   strs = explode( "abc", "abc" );     => strs = ({ })
+   strs = explode( "ein test", "" );   => strs = ({ "ein test" })
+   strs = explode( "a b", "a");        => strs = ({ " b" });
+
+
+SIEHE AUCH
+==========
+
+   explode(E), new_explode(E), efun::explode(E), sscanf(E)
+   implode(E), regexplode(E)
