Index: includes/locale.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/locale.inc,v
retrieving revision 1.174.2.14
diff -u -r1.174.2.14 locale.inc
--- includes/locale.inc	11 Aug 2010 19:42:26 -0000	1.174.2.14
+++ includes/locale.inc	14 Dec 2010 11:04:19 -0000
@@ -1855,37 +1855,39 @@
   $output = $header ."\n";
 
   foreach ($strings as $lid => $string) {
-    // Only process non-children, children are output below their parent.
-    if (!isset($string['child'])) {
-      if ($string['comment']) {
-        $output .= '#: '. $string['comment'] ."\n";
-      }
-      $output .= 'msgid '. _locale_export_string($string['source']);
-      if (!empty($string['plural'])) {
-        $plural = $string['plural'];
-        $output .= 'msgid_plural '. _locale_export_string($strings[$plural]['source']);
-        if (isset($language)) {
-          $translation = $string['translation'];
-          for ($i = 0; $i < $language->plurals; $i++) {
-            $output .= 'msgstr['. $i .'] '. _locale_export_string($translation);
-            if ($plural) {
-              $translation = _locale_export_remove_plural($strings[$plural]['translation']);
-              $plural = isset($strings[$plural]['plural']) ? $strings[$plural]['plural'] : 0;
-            }
-            else {
-              $translation = '';
+    if ($string['source']) {    
+      // Only process non-children, children are output below their parent.
+      if (!isset($string['child'])) {
+        if ($string['comment']) {
+          $output .= '#: '. $string['comment'] ."\n";
+        }
+        $output .= 'msgid '. _locale_export_string($string['source']);
+        if (!empty($string['plural'])) {
+          $plural = $string['plural'];
+          $output .= 'msgid_plural '. _locale_export_string($strings[$plural]['source']);
+          if (isset($language)) {
+            $translation = $string['translation'];
+            for ($i = 0; $i < $language->plurals; $i++) {
+              $output .= 'msgstr['. $i .'] '. _locale_export_string($translation);
+              if ($plural) {
+                $translation = _locale_export_remove_plural($strings[$plural]['translation']);
+                $plural = isset($strings[$plural]['plural']) ? $strings[$plural]['plural'] : 0;
+              }
+              else {
+                $translation = '';
+              }
             }
           }
+          else {
+            $output .= 'msgstr[0] ""'."\n";
+            $output .= 'msgstr[1] ""'."\n";
+          }
         }
         else {
-          $output .= 'msgstr[0] ""'."\n";
-          $output .= 'msgstr[1] ""'."\n";
+          $output .= 'msgstr '. _locale_export_string($string['translation']);
         }
+        $output .= "\n";
       }
-      else {
-        $output .= 'msgstr '. _locale_export_string($string['translation']);
-      }
-      $output .= "\n";
     }
   }
   return $output;
