Index: apachesolr_multilingual.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/apachesolr_multilingual/apachesolr_multilingual.module,v
retrieving revision 1.3.2.16
diff -u -r1.3.2.16 apachesolr_multilingual.module
--- apachesolr_multilingual.module	7 Jul 2010 15:55:08 -0000	1.3.2.16
+++ apachesolr_multilingual.module	24 Jul 2010 11:49:46 -0000
@@ -161,8 +161,11 @@
  * @return unknown_type
  */
 function apachesolr_multilingual_form_alter(&$form, $form_state, $form_id) {
-  $active_languages = locale_language_list();
   if ('apachesolr_search_settings_form' == $form_id) {
+    $active_languages = locale_language_list();
+    $solr = apachesolr_get_solr();
+    $fields = $solr->getFields();
+
     $form['apachesolr_search_query_fields']['#description'] .= '<br />' . t('<b>Note:</b> If you are missing some language specific fields here you have to index some corresponding content first.');
     $qf = variable_get('apachesolr_search_query_fields', array());
     // Note - we have default values set in solrconfig.xml, which will operate
@@ -182,8 +185,6 @@
       $qf = $defaults;
     }
 
-    $solr = apachesolr_get_solr();
-    $fields = $solr->getFields();
     foreach ($fields as $field_name => $field) {
       // Only indexed fields are searchable.
       if ($field->schema{0} == 'I') {
@@ -323,17 +324,21 @@
     }
   }
 
+  // $params['hl.fl'] = 'title,body';
+  $params['hl.fl'] = 'body';
+
   if ($filter_language && in_array($filter_language, $languages)) {
-    if (variable_get('apachesolr_search_spellcheck', FALSE)) {
-      $params['spellcheck.dictionary'] = 'spellchecker_' . $filter_language;
+    $solr = apachesolr_get_solr();
+    $fields = $solr->getFields();
+
+    if (array_key_exists('body_' . $filter_language, $fields)) {
+      // $params['hl.fl'] = 'title_' . $lang . ',body_' . $filter_language;
+      $params['hl.fl'] = 'body_' . $filter_language;
     }
 
-    // $params['hl.fl'] = 'title_' . $lang . ',body_' . $filter_language;
-    $params['hl.fl'] = 'body_' . $filter_language;
-  }
-  else {
-    // $params['hl.fl'] = 'title,body';
-    $params['hl.fl'] = 'body';
+    if (variable_get('apachesolr_search_spellcheck', FALSE) && array_key_exists('spell_' . $filter_language, $fields)) {
+      $params['spellcheck.dictionary'] = 'spellchecker_' . $filter_language;
+    }
   }
 }
 
