diff --git a/doc/efun/clear_bit b/doc/efun/clear_bit
index eddd69d..04b80be 100644
--- a/doc/efun/clear_bit
+++ b/doc/efun/clear_bit
@@ -1,35 +1,37 @@
 SYNOPSIS
         string clear_bit(string str, int n)
 
-BESCHREIBUNG
-        Gibt einen neuen String zurueck, in dem das n-te Bit im String <str>
-        nicht gesetzt ist. Dabei wird <str> selbst nicht veraendert.
+DESCRIPTION
+        Return the new string where bit n is cleared in string str.
+        Note that the old string str is not modified.
 
-        Jedes Zeichen enthaelt sechs Bits. So kann in jedem Zeichen eine Zahl
-        zwischen 0 und 63 (2^6=64) gespeichert werden. Das erste Zeichen ist
-        der Leerschlag " " mit Wert 0. Das erste Zeichen im String ist jenes
-        mit den niedrigsten Bits (0 bis 5).
+        Each character contains 6 bits. So you can store a value
+        between 0 and 63 ( 2^6=64) in one character. Starting
+        character is the blank character " " which has the value 0.
+        The first charcter in the string is the one with the lowest
+        bits (0-5).
 
-BEISPIELE
+EXAMPLES
         string s;
-        s = clear_bit("_", 5);
+        s=clear_bit("_",5);
 
-        Weil "_" den hoechsten moeglichen Wert enthaelt (63), enthaelt die
-        Variable s nun das Zeichen "?", das dem Wert 31 entspricht (63-2^5=31).
+        Because "_" is the highest possible value (63), the variable s
+        will now contain the charcter "?" wich is equal to 31
+        (63-2^5=31).
 
         string s;
-        s = clear_bit("?<",3);
-        s = clear_bit(s, 8);
+        s=clear_bit("?<",3);
+        s=clear_bit(s,8);
 
-        s enthaelt nun den String "78". "?" entspricht dem Wert 31 und "<" dem
-        Wert 28. "?<" entspricht also dem Wert 31+28<<6=31+1792=1823, was in
-        Binaerschreibweise (hoechstes Bit rechts) 11111000111 ergibt. Werden
-        aus dieser Zahl die Bits 3 und 8 (die Nummerierung beginnt mit dem
-        0. Bit) ergibt dann: 11101000011. Die ersten 6 Bits 010111 sind in
-        Dezimalschreibweise 23. Die zweiten 6 Bits (0)11000 ergeben 24 in
-        Dezimalschreibweise. Nun entspricht der Wert 23 dem Zeichen "7" und
-        der Wert 24 dem Zeichen "8". Der String s enthaelt also "78".
+        s will now contain the string "78". "?" equals 31 and "<"
+        equals 28. Now "?<" is equal to 31+28<<6=31+1792=1823 which is
+        in binary notation (highest bit on the right side)
+        11111000111. Now clearing the bit 3 and bit 8 (bit numbering
+        starts with zero) will result in 11101000011. The first 6 bits
+        are in decimal notation 23 and the next 6 are equal to 24. Now
+        the 23 is the character "7" and 24 is the "8". So the string s
+        contains "78".
 
-SIEHE AUCH
+SEE ALSO
         set_bit(E), next_bit(E), last_bit(E), test_bit(E), count_bits(E),
         and_bits(E), or_bits(E), xor_bits(E), invert_bits(E), copy_bits(E)
