diff --git activity.module activity.module
index 73d3d8c..c3d276e 100644
--- activity.module
+++ activity.module
@@ -975,7 +975,13 @@ function theme_activity_settings_actions_list($results) {
       l('configure', 'admin/build/activity/configure/'. $result['aid']),
       l('delete', 'admin/build/activity/delete/'. $result['aid'])
     );
-    if (activity_batch_load($result['aid'])) {
+    // If this is one of the core implementations, we can regenerate.
+    // activity_batch_load can be too intensive for this, so we do a paired 
+    // down version of that here instead.
+    $valid['hooks'] = array('nodeapi', 'comment', 'user');
+    $valid['ops'] = array('insert', 'update');
+    $trigger_assignment = db_fetch_object(db_query("SELECT hook, op FROM {trigger_assignments} WHERE aid = '%s'", $result['aid']));
+    if (in_array($trigger_assignment->hook, $valid['hooks']) && in_array($trigger_assignment->op, $valid['ops'])) {
       $links[] = l('regenerate', 'admin/build/activity/batch/' . $result['aid'] . '/' . drupal_get_token($result['aid']));
     }
     $rows[] = array(
