Index: modules/field/field.multilingual.inc
===================================================================
RCS file: /cvs/drupal/drupal/modules/field/field.multilingual.inc,v
retrieving revision 1.4
diff -u -p -r1.4 field.multilingual.inc
--- modules/field/field.multilingual.inc	31 Oct 2009 16:06:35 -0000	1.4
+++ modules/field/field.multilingual.inc	13 Nov 2009 19:24:50 -0000
@@ -7,6 +7,25 @@
  */
 
 /**
+ * Check if field are allowed to be translated for the given entity type.
+ *
+ * Field translations are not allowed on unilingual sites, moreover there must
+ * be at least one module enabled which registered itself as a translation
+ * handler.
+ *
+ * @param $obj_type
+ *   The object type to be checked against.
+ * @param $handler
+ *   Optional. The name of the handler to be checked.
+ *  
+ * @return
+ *   TRUE if the given entity supports field translations.
+ */
+function field_multilingual_enabled($obj_type, $handler = NULL) {
+  return drupal_multilingual() && field_multilingual_check_translation_handlers($obj_type, $handler);
+}
+
+/**
  * Implement hook_multilingual_settings_changed().
  */
 function field_multilingual_settings_changed() {
@@ -16,7 +35,7 @@ function field_multilingual_settings_cha
 /**
  * Collect the available languages for the given entity type and field.
  *
- * If an entity has a translation handler and the given field is translatable,
+ * If an entity supports field translation and the given field is translatable,
  * a (not necessarily strict) subset of the current enabled languages will be
  * returned, otherwise only FIELD_LANGUAGE_NONE will be returned. Since the
  * default value for a 'translatable' entity property is FALSE, we ensure that
@@ -30,6 +49,7 @@ function field_multilingual_settings_cha
  * @param $suggested_languages
  *   An array of language preferences which will be intersected with the enabled
  *   languages.
+ *
  * @return
  *   An array of valid language codes.
  */
@@ -38,9 +58,7 @@ function field_multilingual_available_la
   $field_name = $field['field_name'];
 
   if (!isset($field_languages[$field_name]) || !empty($suggested_languages)) {
-    $translation_handlers = field_multilingual_check_translation_handlers($obj_type);
-
-    if ($translation_handlers && $field['translatable']) {
+    if (field_multilingual_enabled($obj_type) && $field['translatable']) {
       // The returned languages are a subset of the intersection of enabled ones
       // and suggested ones.
       $available_languages = field_multilingual_content_languages();
@@ -124,6 +142,7 @@ function field_multilingual_check_transl
  * @param $default
  *   Whether to return the default language code or the current language code in
  *   case $langcode is invalid.
+ *
  * @return
  *   A valid language code.
  */
Index: modules/locale/locale.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/locale/locale.module,v
retrieving revision 1.268
diff -u -p -r1.268 locale.module
--- modules/locale/locale.module	10 Nov 2009 17:27:53 -0000	1.268
+++ modules/locale/locale.module	13 Nov 2009 19:25:37 -0000
@@ -437,7 +437,7 @@ function locale_form_alter(&$form, &$for
  * node language changes.
  */
 function locale_field_node_form_submit($form, &$form_state) {
-  if (field_multilingual_check_translation_handlers('node', 'locale')) {
+  if (field_multilingual_enabled('node', 'locale')) {
     module_load_include('inc', 'locale', 'locale.field');
     locale_field_node_form_update_field_language($form, $form_state);
   }
@@ -473,7 +473,7 @@ function locale_field_attach_view_alter(
 
   // Do not apply fallback rules if disabled or if Locale is not registered as a
   // translation handler.
-  if (!$recursion && variable_get('locale_field_fallback_view', TRUE) && field_multilingual_check_translation_handlers($context['obj_type'], 'locale')) {
+  if (!$recursion && locale_field_fallback_enabled($context['obj_type'])) {
     $recursion = TRUE;
     module_load_include('inc', 'locale', 'locale.field');
     locale_field_fallback_view($output, $context);
@@ -482,12 +482,18 @@ function locale_field_attach_view_alter(
 }
 
 /**
+ * Check if language fallback is enabled for translatable fields.
+ */
+function locale_field_fallback_enabled($obj_type) {
+  return variable_get('locale_field_fallback_view', TRUE) && field_multilingual_enabled($obj_type, 'locale');
+}
+
+/**
  * Implement hook_entity_info_alter().
  */
 function locale_entity_info_alter(&$entity_info) {
-  $enabled = drupal_multilingual();
   foreach ($entity_info as $type => $info) {
-    $entity_info[$type]['translation']['locale'] = $enabled;
+    $entity_info[$type]['translation']['locale'] = TRUE;
   }
 }
 
