diff --git a/www/sites/all/modules/contrib/ds/modules/ds_search/ds_search.module b/www/sites/all/modules/contrib/ds/modules/ds_search/ds_search.module
index 18c49a9..07b198a 100644
--- a/www/sites/all/modules/contrib/ds/modules/ds_search/ds_search.module
+++ b/www/sites/all/modules/contrib/ds/modules/ds_search/ds_search.module
@@ -559,6 +559,24 @@ function ds_search_apachesolr_update_index(&$document, $node) {
   $document->addField('tm_node', urlencode(serialize(node_load($node->nid))));
 }
 
+function ds_search_apachesolr_index_document_build(ApacheSolrDocument $document, $entity) {
+  $entity_type = $document->getField('entity_type');
+  if ($entity_type['value'] === 'node') {
+    // Apache Solr multisite support. Render the node already here.
+    if (variable_get('ds_search_apachesolr_multisite')) {
+      ob_start();
+      $element = node_view($entity, variable_get('ds_search_view_mode', 'search_result'));
+      print drupal_render($element);
+      $output = ob_get_contents();
+      ob_end_clean();
+      $document->addField('tm_ds_search_result', $output);
+    }
+    // Creme de la creme: Put the full node object in the index,
+    // so no node_loads are needed for results in the Apache Solr engine.
+    $document->addField('tm_node', urlencode(serialize(node_load($entity->nid))));
+  }
+}
+
 /**
  * Implements hook_apachesolr_query_alter().
  */
