--- modules/locale/locale.module	2006-12-27 14:11:59.000000000 +0100
+++ modules/locale/locale.module.new	2008-05-13 06:26:38.000000000 +0200
@@ -246,9 +246,11 @@
   static $all = NULL;
 
   if ($reset) {
-    unset($enabled); unset($all);
+    // If a static variable is unset() inside of a function, unset() destroys the variable only in the context of the rest of a function. Following calls will restore the previous value of a variable.
+    // unset($enabled); unset($all);
+    $all = $enabled = NULL;
   }
-
+  
   if (is_null($enabled)) {
     $enabled = $all = array();
     $all['name'] = $all['formula'] = $enabled['name'] = $enabled['formula'] = array();
