diff --git a/doc/efun/replace_program b/doc/efun/replace_program
index 98cc305..39f8e88 100644
--- a/doc/efun/replace_program
+++ b/doc/efun/replace_program
@@ -2,40 +2,35 @@
         void replace_program()
         void replace_program(string program)
 
-BESCHREIBUNG
-        Ersetzt ein Programm mit dem geerbten Programm (inherit) <program>.
-        Das Argument <program> kann weggelassen werden, wenn nur ein Programm
-        geerbt wird. In diesem Fall waehlt der Treiber automatisch dieses eine
-        geerbte Programm.
+DESCRIPTION
+        Substitutes a program with the inherited program <program>. If
+        the object inherits only one program, the argument may be omitted
+        and the efun will automatically select the one inherited program.
 
-        Diese Efun ist nuetzlich, wenn es um Leistung und Speicherverbrauch
-        des Treibers geht. Ein Programm, welches keine zusaetzlichen Variablen
-        oder Funktionen braucht (ausser waehrend der Erstellung), kann
-        replace_program() aufrufen, um die Trefferquote des Treibers auf den
-        Funktionen-Caches zu erhoehen. Dies verringert die Anzahl Programme
-        im System.
+        This efun is useful if you consider the performance and memory
+        consumption of the driver. A program which doesn't need any additional
+        variables and functions (except during creation) can call
+        replace_program() to increase the function-cache hit-rate of the
+        driver which decreases with the number of programs in the system.
 
-        Raeume sind ein gutes Beispiel fuer die Anwendung dieser Funktion, da
-        viele Raeume nur aus einem Inherit und einer Konfigurationsfunktion
-        bestehen. Jedes Objekt kann replace_program() aufrufen, verliert dabei
-        jedoch alle Variablen und Funktionen, die nicht im geerbten Programm
-        definiert sind.
+        Rooms are a good example for the application of this function, as many
+        rooms just consist of an inherit statement and the configure function.
+        Any object can call replace_program() but looses all extra variables
+        and functions which are not defined by the inherited program.
 
-        Wenn replace_program() angewendet wird, werden Shadows vom Objekt
-        entfernt, in dem replace_program() stattfindet. Dies ist so seit
-        3.2@166.
+        When replace_program() takes effect, shadowing is stopped on
+        the object since 3.2@166.
 
-        Es ist nicht moeglich, replace_program() aufzurufen, wenn es an das
-        Objekt gebundene (Lambda-) Closures gibt. Hingegen ist es moeglich,
-        zuerst das Programm des Objekts zu ersetzen und dann Lambdaclosures
-        daran zu binden.
+        It is not possible to replace the program of an object after (lambda)
+        closures have been bound to it. It is of course possible to first
+        replace the program and then bind lambda closures to it.
 
-        Das Ersetzen des Programms findet erst statt, wenn das Objekt
-        vollstaendig abgearbeitet wurde, nicht schon beim Aufruf der Funktion
-        replace_program(). Das kann dazu fuehren, dass Closures auf inzwischen
-        verschwundene Lfuns des Objekts referenzieren. Das stellt allerdings
-        kein Problem dar, solange diese Referenzen nicht ausgefuehrt werden.
+        The program replacement does not take place with the call to the efun,
+        but is merely scheduled to be carried out at the end of the backend
+        cycle. This may cause closures to have references to then vanished
+        lfuns of the object. This poses no problem as long as these references
+        are never executed after they became invalid.
 
-GESCHICHTE
-        LDMud 3.2.9 liess zu, dass das Argument <program> weggelassen wird,
-        wenn nur ein Inherit existiert.
+HISTORY
+        LDMud 3.2.9 allowed to omit the argument if only one inherit
+        exists.
