diff --git a/modules/locale/locale.module b/modules/locale/locale.module
index 0138f39644dc00899c49b0c58a2406ff68a3129c..caa01f2f3845a202558b620fda70eef18c45a9a1 100644
--- a/modules/locale/locale.module
+++ b/modules/locale/locale.module
@@ -1007,13 +1007,12 @@ function locale_url_outbound_alter(&$path, &$options, $original_path) {
         $negotiation = variable_get("language_negotiation_$type", array());
 
         foreach ($negotiation as $id => $provider) {
-          if (isset($provider['file'])) {
-            require_once DRUPAL_ROOT . '/' . $provider['file'];
-          }
-
-          // Avoid duplicate callback entries.
           if (isset($provider['callbacks']['url_rewrite'])) {
-            $callbacks[$provider['callbacks']['url_rewrite']] = NULL;
+            if (isset($provider['file'])) {
+              require_once DRUPAL_ROOT . '/' . $provider['file'];
+            }
+            // Avoid duplicate callback entries.
+            $callbacks[$provider['callbacks']['url_rewrite']] = TRUE;
           }
         }
       }