Index: modules/field/field.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/field.module,v
retrieving revision 1.47
diff -u -r1.47 field.module
--- modules/field/field.module	31 Oct 2009 18:00:48 -0000	1.47
+++ modules/field/field.module	17 Nov 2009 14:31:30 -0000
@@ -70,13 +70,6 @@
 define('FIELD_CARDINALITY_UNLIMITED', -1);
 
 /**
- * The language code assigned to untranslatable fields.
- *
- * Defined by ISO639-2 for "No linguistic content / Not applicable".
- */
-define('FIELD_LANGUAGE_NONE', 'zxx');
-
-/**
  * TODO
  */
 define('FIELD_BEHAVIOR_NONE', 0x0001);
Index: modules/field/field.multilingual.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/field.multilingual.inc,v
retrieving revision 1.4
diff -u -r1.4 field.multilingual.inc
--- modules/field/field.multilingual.inc	31 Oct 2009 16:06:35 -0000	1.4
+++ modules/field/field.multilingual.inc	17 Nov 2009 14:31:30 -0000
@@ -71,7 +71,7 @@
 /**
  * Return available content languages.
  *
- * The languages that may be associated to fields include FIELD_LANGAUGE_NONE.
+ * The languages that may be associated to fields include LANGUAGE_NONE.
  *
  * @return
  *   An array of language codes.
@@ -132,12 +132,6 @@
   if (in_array($langcode, $enabled_languages)) {
     return $langcode;
   }
-  // @todo Currently, node language neutral code is an empty string. Node passes
-  //   $node->language as language parameter to field_attach_form(). We might
-  //   want to unify the two "language neutral" language codes.
-  if ($langcode === '') {
-    return FIELD_LANGUAGE_NONE;
-  }
   global $language;
   $langcode = $default ? language_default('language') : $language->language;
   if (in_array($langcode, $enabled_languages)) {
Index: includes/bootstrap.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/bootstrap.inc,v
retrieving revision 1.326
diff -u -r1.326 bootstrap.inc
--- includes/bootstrap.inc	15 Nov 2009 21:41:06 -0000	1.326
+++ includes/bootstrap.inc	17 Nov 2009 14:31:30 -0000
@@ -194,6 +194,13 @@
 define('LANGUAGE_TYPE_URL', 'language_url');
 
 /**
+ * The language code assigned to untranslatable fields.
+ *
+ * Defined by ISO639-2 for "No linguistic content / Not applicable".
+ */
+define('FIELD_LANGUAGE_NONE', 'zxx');
+
+/**
  * Language written left to right. Possible value of $language->direction.
  */
 define('LANGUAGE_LTR', 0);
Index: modules/translation/translation.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/translation/translation.module,v
retrieving revision 1.64
diff -u -r1.64 translation.module
--- modules/translation/translation.module	8 Nov 2009 10:02:41 -0000	1.64
+++ modules/translation/translation.module	17 Nov 2009 14:31:32 -0000
@@ -76,7 +76,7 @@
  * all languages).
  */
 function _translation_tab_access($node) {
-  if (!empty($node->language) && translation_supported_type($node->type)) {
+  if ($node->language != FIELD_LANGUAGE_NONE && translation_supported_type($node->type)) {
     return user_access('translate content');
   }
   return FALSE;
@@ -123,7 +123,7 @@
       // Disable languages for existing translations, so it is not possible to switch this
       // node to some language which is already in the translation set. Also remove the
       // language neutral option.
-      unset($form['language']['#options']['']);
+      unset($form['language']['#options'][FIELD_LANGUAGE_NONE]);
       foreach (translation_node_get_translations($node->tnid) as $translation) {
         if ($translation->nid != $node->nid) {
           unset($form['language']['#options'][$translation->language]);
Index: modules/node/node.admin.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.admin.inc,v
retrieving revision 1.78
diff -u -r1.78 node.admin.inc
--- modules/node/node.admin.inc	17 Nov 2009 02:50:41 -0000	1.78
+++ modules/node/node.admin.inc	17 Nov 2009 14:31:31 -0000
@@ -108,7 +108,7 @@
   }
   // Language filter if there is a list of languages
   if ($languages = module_invoke('locale', 'language_list')) {
-    $languages = array('' => t('Language neutral')) + $languages;
+    $languages = array(FIELD_LANGUAGE_NONE => t('Language neutral')) + $languages;
     $filters['language'] = array(
       'title' => t('language'),
       'options' => array(
@@ -169,7 +169,7 @@
       $value = $value->name;
     }
     elseif ($type == 'language') {
-      $value = empty($value) ? t('Language neutral') : module_invoke('locale', 'language_name', $value);
+      $value = $value == FIELD_LANGUAGE_NONE ? t('Language neutral') : module_invoke('locale', 'language_name', $value);
     }
     else {
       $value = $filters[$type]['options'][$value];
@@ -436,7 +436,7 @@
 
   // Enable language column if translation module is enabled
   // or if we have any node with language.
-  $multilanguage = (module_exists('translation') || db_query("SELECT COUNT(*) FROM {node} WHERE language <> ''")->fetchField());
+  $multilanguage = (module_exists('translation') || db_query("SELECT COUNT(*) FROM {node} WHERE language <> '%s'", array(FIELD_LANGUAGE_NONE))->fetchField());
 
   // Build the sortable table header.
   $header = array(
@@ -482,7 +482,7 @@
   $destination = drupal_get_destination();
   $options = array();
   foreach ($nodes as $node) {
-    $l_options = !empty($node->language) ? array('language' => $languages[$node->language]) : array();
+    $l_options = $node->language != FIELD_LANGUAGE_NONE ? array('language' => $languages[$node->language]) : array();
     $options[$node->nid] = array(
       'title' => array(
         'data' => array(
@@ -499,7 +499,7 @@
       'changed' => format_date($node->changed, 'short'),
     );
     if ($multilanguage) {
-      $options[$node->nid]['language'] = empty($node->language) ? t('Language neutral') : t($languages[$node->language]->name);
+      $options[$node->nid]['language'] = $node->language == FIELD_LANGUAGE_NONE ? t('Language neutral') : t($languages[$node->language]->name);
     }
     // Build a list of all the accessible operations for the current node.
     $operations = array();
Index: modules/node/node.pages.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/node/node.pages.inc,v
retrieving revision 1.100
diff -u -r1.100 node.pages.inc
--- modules/node/node.pages.inc	8 Nov 2009 10:02:41 -0000	1.100
+++ modules/node/node.pages.inc	17 Nov 2009 14:31:31 -0000
@@ -62,7 +62,7 @@
   // If a node type has been specified, validate its existence.
   if (isset($types[$type])) {
     // Initialize settings:
-    $node = (object)array('uid' => $user->uid, 'name' => (isset($user->name) ? $user->name : ''), 'type' => $type, 'language' => '');
+    $node = (object)array('uid' => $user->uid, 'name' => (isset($user->name) ? $user->name : ''), 'type' => $type, 'language' => FIELD_LANGUAGE_NONE);
 
     drupal_set_title(t('Create @name', array('@name' => $types[$type]->name)), PASS_THROUGH);
     $output = drupal_get_form($type . '_node_form', $node);
@@ -140,7 +140,7 @@
       '#value' => isset($node->$key) ? $node->$key : NULL,
     );
   }
-
+
   // Changed must be sent to the client, for later overwrite error checking.
   $form['changed'] = array(
     '#type' => 'hidden',
Index: modules/locale/locale.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/locale/locale.module,v
retrieving revision 1.268
diff -u -r1.268 locale.module
--- modules/locale/locale.module	10 Nov 2009 17:27:53 -0000	1.268
+++ modules/locale/locale.module	17 Nov 2009 14:31:31 -0000
@@ -415,7 +415,7 @@
         '#type' => 'select',
         '#title' => t('Language'),
         '#default_value' => (isset($form['#node']->language) ? $form['#node']->language : ''),
-        '#options' => array('' => t('Language neutral')) + locale_language_list('name'),
+        '#options' => array(FIELD_LANGUAGE_NONE => t('Language neutral')) + locale_language_list('name'),
       );
     }
     // Node type without language selector: assign the default for new nodes
