diff --git a/includes/locale.inc b/includes/locale.inc
--- a/includes/locale.inc
+++ b/includes/locale.inc
@@ -2007,15 +2007,7 @@
     }
 
     switch ($query['language']) {
-      // Force search in source strings
-      case "en":
-        $sql = $join ." WHERE s.source LIKE '%%%s%%' $grouplimit ORDER BY s.source";
-        $arguments = array($query['string']); // $where is not used, discard its arguments
-        if (!empty($grouplimit)) {
-          $arguments[] = $query['group'];
-        }
-        break;
       // Search in all languages
       case "all":
         $sql = "$join $where $grouplimit $orderby";
         break;
@@ -2018,7 +2010,20 @@
       // Search in all languages
       case "all":
         $sql = "$join $where $grouplimit $orderby";
         break;
+      case "en": // arhak 2009.08.24
+        if ($query['group'] == 'default') {
+          // same old code for case "en"
+          // Force search in source strings
+          $sql = $join ." WHERE s.source LIKE '%%%s%%' $grouplimit ORDER BY s.source";
+          $arguments = array($query['string']); // $where is not used, discard its arguments
+          if (!empty($grouplimit)) {
+            $arguments[] = $query['group'];
+          }
+          break;
+        }
+        // else fall through default case
+        // no break;
       // Some different language
       default:
         $sql = "$join AND t.language = '%s' $where $grouplimit $orderby";
@@ -2246,7 +2251,7 @@
   drupal_add_css(drupal_get_path('module', 'locale') .'/locale.css', 'module', 'all', FALSE);
 
   $languages = language_list();
-  unset($languages['en']);
+  if (!$limit_language || language_default('language') == 'en') unset($languages['en']); // arhak 2009.08.24
   $output = '';
   foreach ($languages as $langcode => $language) {
     if (!$limit_language || $limit_language == $langcode) {
