diff --git a/apachesolr_search.module b/apachesolr_search.module
index 0027a3e..24c804e 100644
--- a/apachesolr_search.module
+++ b/apachesolr_search.module
@@ -1212,6 +1212,8 @@ function apachesolr_search_process_response($response, DrupalSolrQueryInterface
     // 'score' is generated by solr.
     foreach ($response->response->docs as $doc) {
       $extra = array();
+      // Allow modules to alter each document and its extra information.
+      drupal_alter('apachesolr_search_result', $doc, $extra, $query);
 
       // Start with an empty snippets array.
       $snippets = array();
@@ -1272,13 +1274,9 @@ function apachesolr_search_process_response($response, DrupalSolrQueryInterface
         $doc->name = NULL;
       }
 
-      $extra = array();
-
-      // Allow modules to alter each document and its extra information.
-      drupal_alter('apachesolr_search_result', $doc, $extra, $query);
-
       // Set all expected fields from fl to NULL if they are missing so
       // as to prevent Notice: Undefined property.
+      $fl = array_merge($fl, array('path', 'label', 'score'));
       foreach ($fl as $field) {
         if (!isset($doc->{$field})) {
           $doc->{$field} = NULL;
