diff --git a/apachesolr.module b/apachesolr.module
index 7c5c914..2c476b0 100644
--- a/apachesolr.module
+++ b/apachesolr.module
@@ -640,7 +640,23 @@ function apachesolr_node_type($op, $info) {
   module_load_include('inc', 'apachesolr', 'apachesolr.index');
   $env_id = apachesolr_default_environment();
   if ($op == 'delete') {
-    apachesolr_index_mark_for_reindex($env_id, $info->type);
+    $env_id           = apachesolr_default_environment();
+    $existing_bundles = apachesolr_get_index_bundles($env_id, 'node');
+    $new_bundles      = $existing_bundles;
+    $index            = array_search($info->type, $existing_bundles);
+
+    if ($index !== FALSE) {
+      unset($new_bundles[$index]);
+      $new_bundles = array_values($new_bundles);
+      apachesolr_index_set_bundles($env_id, 'node', $new_bundles);
+    }
+
+    apachesolr_index_delete_bundles($env_id, 'node', array($info->type));
+    $callback = apachesolr_entity_get_callback($entity_type, 'bundles changed callback');
+
+    if (!empty($callback)) {
+      call_user_func($callback, $env_id, $existing_bundles, $new_bundles);
+    }
   }
   elseif (!empty($info->old_type) && $info->old_type != $info->type) {
     // We cannot be sure we are going before or after node module.
@@ -2019,7 +2035,7 @@ function apachesolr_entity_fields($entity_type = 'node') {
         $field['field']['vid'] = $vid;
         $field['field']['type'] = 'taxonomy_term';
         if(!empty($field['bundles'])) {
-          $fields[$entity_type][apachesolr_index_key($field)] = $field;
+          $fields[$entity_type][apachesolr_index_key($field)] = array($field);
         }
       }
     }
