diff --git a/apachesolr_search.module b/apachesolr_search.module
index 51dc6d4..f4661fe 100644
--- a/apachesolr_search.module
+++ b/apachesolr_search.module
@@ -389,8 +389,6 @@ function apachesolr_search_add_boost_params(&$params, $query, $solr) {
 
 function apachesolr_process_response($response, $query, $params) {
   $results = array();
-  // We default to getting snippets from the body.
-  $hl_fl = isset($params['hl.fl']) ? $params['hl.fl'] : 'body';
   $total = $response->response->numFound;
   apachesolr_pager_init($total, $params['rows']);
   if ($total > 0) {
@@ -398,8 +396,8 @@ function apachesolr_process_response($response, $query, $params) {
       $extra = array();
 
       // Find the nicest available snippet.
-      if (isset($response->highlighting->{$doc->id}->$hl_fl)) {
-        $snippet = theme('apachesolr_search_snippets', $doc, $response->highlighting->{$doc->id}->$hl_fl);
+      if (isset($response->highlighting->{$doc->id}->body)) {
+        $snippet = theme('apachesolr_search_snippets', $doc, $response->highlighting->{$doc->id}->body);
       }
       elseif (isset($doc->teaser)) {
         $snippet = theme('apachesolr_search_snippets', $doc, array(truncate_utf8($doc->teaser, 256, TRUE)));
@@ -437,6 +435,7 @@ function apachesolr_process_response($response, $query, $params) {
         'score' => $doc->score,
         'snippet' => $snippet,
         'fields' => $fields,
+        'highlight' => (array) $response->highlighting->{$doc->id},
       );
     }
 
