diff --git a/doc/efun/wizlist_info b/doc/efun/wizlist_info
index 91c1bae..674ec9a 100644
--- a/doc/efun/wizlist_info
+++ b/doc/efun/wizlist_info
@@ -1,39 +1,38 @@
-GESCHUETZT
 SYNOPSIS
         #include <wizlist.h>
 
         mixed * wizlist_info()
 
-BESCHREIBUNG
-        Liefert ein Array mit Eintraegen aus der Wizlist (der internen
-        Goetterliste). Die Benutzung muss durch das Masterobjekt erlaubt
-        werden.
+DESCRIPTION
+        Returns an array with the interesting entries of the wizlist.
+        Needs to be privileged by the master object.
 
-        Das Resultat ist ein Array mit einem Eintrag fuer jeden Gott (uid).
-        Jeder Eintrag enthaelt wiederum ein Array mit folgenden Elementen:
+        The result is an array with one entry for every wizard (uid).
+        Every entry is an array itself:
 
-            string  w[WL_NAME]          Name des Gottes
-            int w[WL_COMMANDS]          Gewichtete Anzahl Kommandos, die von
-                                        Objekten dieses Gottes ausgefuehrt
-                                        wurden
-            int w[WL_COSTE]             Gewichtete Summe der Eval-Kosten
-            int w[WL_GIGACOST]          Gewichtete Summe der Eval-Kosten
-            int W[WL_TOTAL_COST]        Totale Summe der Eval-Kosten
-            int w[WL_TOTAL_GIGACOST]    Totale Summe der Eval-Kosten
-            int w[WL_HEART_BEAT]        Gewichtete Anzahl der heat_beat()s
-            int w[WL_CALL_OUT]          Reserviert fuer call_out()s
-                                        (bisher nicht implementiert)
-            int w[WL_ARRAY_TOTAL]       Totale Groesse aller Arrays in
-                                        Elementen
-            mixed w[WL_EXTRA]           Die eigentliche Wizlist-Info
+          string w[WL_NAME]        = Name of the wizard.
+          int    w[WL_COMMANDS]    = Weighted number of commands execute by
+                                     objects of this wizard.
+          int    w[WL_COST],
+          int    w[WL_GIGACOST]       = Weighted sum of eval_costs.
+          int    w[WL_TOTAL_COST],
+          int    w[WL_TOTAL_GIGACOST] = Total sum of eval_costs.
+          int    w[WL_HEART_BEATS]   = Weighted count of heart_beats.
+          int    w[WL_CALL_OUT]      = Reserved for call_out() (unused yet).
+          int    w[WL_ARRAY_TOTAL]   = Total size of arrays in elements.
+          int    w[WL_MAPPING_TOTAL] = Total size of mappings in elements.
+          int    w[WL_STRUCT_TOTAL]  = Total size of structs in elements.
+          mixed  w[WL_EXTRA]         = Extra wizlist-info if set.
 
-        Die "gewichteten" Werte verfallen pro Stunde um 10%.
+        The 'weighted' entries decay every hour by 10%.
 
-GESCHICHTE
-        LDMud 3.2.10 trennte das alte WL_EVAL_COST in WL_COST und WL_GIGACOST,
-            um laengeren Uptimes gerecht zu werden. Ausserdem wurde
-            WL_TOTAL_COST und WL_TOTAL_GIGACOST eingefuehrt.
+HISTORY
+        LDMud 3.2.10 split the old WL_EVAL_COST into WL_COST and WL_GIGACOST
+          to accomodate for longer uptimes, and introduced
+          WL_TOTAL_COST/WL_TOTAL_GIGACOST.
+        LDMud 3.3.174 added WL_MAPPING_TOTAL.
+        LDMud 3.3.? added WL_STRUCT_TOTAL.
 
-SIEHE AUCH
-        privilege_violation(M), set_extra_wizinfo_size(E),
+SEE ALSO
+        privilege_violation(M), set_extra_wizinfo_size(E)
         get_extra_wizinfo(E), set_extra_wizinfo(E)
