diff --git contrib/apachesolr_taxonomy.module contrib/apachesolr_taxonomy.module
index 212be82..1073d1a 100644
--- contrib/apachesolr_taxonomy.module
+++ contrib/apachesolr_taxonomy.module
@@ -23,7 +23,11 @@ function apachesolr_taxonomy_menu_alter(&$menu) {
 //function apachesolr_search_taxonomy_term_page($str_tids = '', $depth = 0, $op = 'page') {
 function apachesolr_taxonomy_term_page($term) {
   // Build breadcrumb based on the hierarchy of the term.
-  $current->tid = $term->tid;
+  $current = (object) array(
+    'tid' => $term->tid,
+  );
+  // @todo This overrides any other possible breadcrumb and is a pure hard-coded
+  //   presumption. Make this behavior configurable per vocabulary or term.
   $breadcrumb = array();
   while ($parents = taxonomy_get_parents($current->tid)) {
     $current = array_shift($parents);
@@ -34,38 +38,39 @@ function apachesolr_taxonomy_term_page($term) {
   drupal_set_breadcrumb($breadcrumb);
   drupal_add_feed(url('taxonomy/term/' . $term->tid . '/feed'), 'RSS - ' . $term->name);
 
-  $build['term_heading'] = array(
-    '#prefix' => '<div class="term-listing-heading">',
-    '#suffix' => '</div>',
-    'term' => taxonomy_term_view($term, 'full'),
-  );
-
-  $filters = 'tid:' . $term->tid;
-  $solrsort = variable_get('apachesolr_search_taxonomy_sort', 'ds_created desc');
-  $page = isset($_GET['page']) ? $_GET['page'] : 0;
-  $type = 'apachesolr_search';
-  $_GET['retain-filters'] = 1; //?? 
+  $build = array();
+  // Add term heading if the term has a description
+  if (!empty($term->description)) {
+    $build['term_heading'] = array(
+      '#prefix' => '<div class="term-listing-heading">',
+      '#suffix' => '</div>',
+      'term' => taxonomy_term_view($term, 'full'),
+    );
+  }
 
-  $search_results = apachesolr_search_run('', $filters, $solrsort, 'search/apachesolr_search', $page);
+  if (user_access('search content')) {
+    $_GET['retain-filters'] = 1; //??
+    $results = apachesolr_search_run('', 'tid:' . $term->tid, variable_get('apachesolr_search_taxonomy_sort', 'ds_created desc'), 'search/apachesolr_search', isset($_GET['page']) ? $_GET['page'] : 0);
 
-  if ($search_results) {
-    foreach ($search_results as $entry) {
-      $output[] = $entry;
+    if ($results) {
+      foreach ($results as $entry) {
+        $output[] = $entry;
+      }
+      $build['content'] = array(
+        '#markup' => theme('search_results', array(
+          'results' => $output,
+          'module' => 'apachesolr_search',
+        )),
+      );
+      return $build;
     }
-
-    $variables['results'] = $output;
-    $variables['module'] = $type;
-    $build['content'] = array(
-      '#markup' => theme('search_results', $variables),
-    );
-  }
-  else{
-    $build['no_content'] = array(
-      '#prefix' => '<p>',
-      '#markup' => t('There is currently no content classified with this term.'),
-      '#suffix' => '</p>',
-    );
   }
+
+  $build['no_content'] = array(
+    '#prefix' => '<p>',
+    '#markup' => t('There is currently no content classified with this term.'),
+    '#suffix' => '</p>',
+  );
   return $build;
 }
 
