diff --git includes/language.inc includes/language.inc
index abbc1cb..00331d0 100644
--- includes/language.inc
+++ includes/language.inc
@@ -104,14 +104,25 @@ function language_from_browser() {
  */
 function language_url_rewrite(&$path, &$options) {
   global $language;
+  static $languages;
 
   // Only modify relative (insite) URLs.
   if (empty($options['external'])) {
 
+    if (!isset($languages)) {
+      $languages = language_list('enabled');
+      $languages = array_flip(array_keys($languages[1]));
+    }
+
     // Language can be passed as an option, or we go for current language.
     if (!isset($options['language'])) {
       $options['language'] = $language;
     }
+    // We allow only enabled languages here.
+    elseif (!isset($languages[$options['language']->language])) {
+      unset($options['language']);
+      return;
+    }
 
     switch (variable_get('language_negotiation', LANGUAGE_NEGOTIATION_NONE)) {
       case LANGUAGE_NEGOTIATION_NONE:
