diff --git a/doc/sefun/m_copy_delete b/doc/sefun/m_copy_delete
index cb1c97b..9aa90f2 100644
--- a/doc/sefun/m_copy_delete
+++ b/doc/sefun/m_copy_delete
@@ -1,43 +1,68 @@
-FUNKTION:
-	mapping m_copy_delete(mapping map, mixed key)
 
-ARGUMENTE:
-	map - das Mapping, aus dem geloescht werden soll.
-	key - der zu loeschende Eintrag
+m_copy_delete()
+***************
 
-BESCHREIBUNG:
-	Aus dem Mapping map wird der Eintrag key geloescht (wenn er in map vor-
-	handen ist). map wird dabei nicht veraendert.
 
-RUECKGABEWERT:
-	Eine (flache !) Kopie von map ohne den Eintrag key, d.h. enthaltene
-	Mappings/Arrays werden nicht kopiert.
+FUNKTION
+========
 
-BEMERKUNGEN:
-	Das urspruengliche Mapping wird bei dieser Operation nicht veraendert!
-	Wenn man nur einen Wert aus dem Mapping loeschen will und die Kopie nicht
-	braucht, bietet sich efun::m_delete(mapping,key) sehr an, da die Erstellung
-  einer Kopie sehr aufwendig sein kann.
+   mapping m_copy_delete(mapping map, mixed key)
 
-BEISPIELE:
-	mapping m1, m2;
 
-        m1 = ([ "a":1, "b":2, "c":3 ]);
+ARGUMENTE
+=========
 
-        m2 = m_copy_delete(m1, "b");
-           => m1 = ([ "a":1, "b":2, "c":3 ])
-	      m2 = ([ "a":1, "c":3 ])
+   map - das Mapping, aus dem geloescht werden soll.
+   key - der zu loeschende Eintrag
 
-        m_copy_delete(m1, "a");
-           => (es hat sich nichts geaendert)
 
-        m1 = m_copy_delete(m1, "a");
-           => m1 = ([ "b":2, "c":3 ])
+BESCHREIBUNG
+============
 
-        Im letzten Fall sollte aber besser efun::m_delete(m1, "a") benutzt 
-        werden, da ansonsten das Mapping unnoetig kopiert wird und Rechen-
-        leistung frisst. 
+   Aus dem Mapping map wird der Eintrag key geloescht (wenn er in map vor-
+   handen ist). map wird dabei nicht veraendert.
 
-SIEHE AUCH:
-  efun::m_delete(E), mappingp(E), mkmapping(E), m_indices,(E) m_values(E),
-  sizeof(E), widthof(E)
+
+RUECKGABEWERT
+=============
+
+   Eine (flache !) Kopie von map ohne den Eintrag key, d.h. enthaltene
+   Mappings/Arrays werden nicht kopiert.
+
+
+BEMERKUNGEN
+===========
+
+         Das urspruengliche Mapping wird bei dieser Operation nicht veraendert!
+         Wenn man nur einen Wert aus dem Mapping loeschen will und die Kopie nicht
+         braucht, bietet sich efun::m_delete(mapping,key) sehr an, da die Erstellung
+   einer Kopie sehr aufwendig sein kann.
+
+
+BEISPIELE
+=========
+
+   mapping m1, m2;
+
+   m1 = ([ "a":1, "b":2, "c":3 ]);
+
+   m2 = m_copy_delete(m1, "b");
+      => m1 = ([ "a":1, "b":2, "c":3 ])
+         m2 = ([ "a":1, "c":3 ])
+
+   m_copy_delete(m1, "a");
+      => (es hat sich nichts geaendert)
+
+   m1 = m_copy_delete(m1, "a");
+      => m1 = ([ "b":2, "c":3 ])
+
+   Im letzten Fall sollte aber besser efun::m_delete(m1, "a") benutzt
+   werden, da ansonsten das Mapping unnoetig kopiert wird und Rechen-
+   leistung frisst.
+
+
+SIEHE AUCH
+==========
+
+   efun::m_delete(E), mappingp(E), mkmapping(E), m_indices,(E) m_values(E),
+   sizeof(E), widthof(E)
