diff --git a/doc/efun/test_bit b/doc/efun/test_bit
index d493357..c6e134e 100644
--- a/doc/efun/test_bit
+++ b/doc/efun/test_bit
@@ -1,21 +1,24 @@
 SYNOPSIS
         int test_bit(string str, int n)
 
-BESCHREIBUNG
-        Gibt 0 oder 1 des <n>-ten Bits im String <str> zurueck.
+DESCRIPTION
+        Return 0 or 1 of bit n was set in string str.
 
-        Jedes Zeichen besteht aus 6 Bits. Jedem Zeichen ist also ein Wert
-        zwischen 0 und 63 zugeordnet (weil 2^6=64). Das erste Zeichen ist der
-        Leerschlag " " mit dem Wert 0 (keines der Bits ist gesetzt). Das
-        erste Zeichen im String ist dasjenige mit den niedrigsten Bits (0-5).
+        Each character contains 6 bits. So you can store a value
+        between 0 and 63 in one character (2^6=64). Starting character
+        is the blank " " which has the value 0. The first character in
+        the string is the one with the lowest bits (0-5).
 
-BEISPIELE
-        test_bit("_", 5);   Liefert 1, weil "_" das 63. Zeichen ist und
-                            deshalb das 5. Bit gesetzt hat.
+EXAMPLES
+        test_bit("_",5);
 
-        test_bit(" ", 3);   Liefert 0, weil " " das 0. Zeichen ist und deshalb
-                            kein Bit gesetzt hat.
+        Returns 1 because "_" stands for the number 63 and therefore
+        the 6th bit is set.
 
-SIEHE AUCH
+        test_bit(" ",3);
+
+        Returns 0 because " " stands for 0 and no bit is set.
+
+SEE ALSO
         set_bit(E), clear_bit(E), last_bit(E), next_bit(E), count_bits(E),
         and_bits(E), or_bits(E), xor_bits(E), invert_bits(E), copy_bits(E)
