Binary files spam_orig/.DS_Store and spam/.DS_Store differ
diff -upr spam_orig/content/spam_content_comment.inc spam/content/spam_content_comment.inc
--- spam_orig/content/spam_content_comment.inc	2010-06-07 10:13:22.000000000 +0100
+++ spam/content/spam_content_comment.inc	2010-06-07 11:40:32.000000000 +0100
@@ -184,12 +184,9 @@ function comment_spamapi($op, $arg1 = NU
       $items = array();
       $items['admin/content/comment/list/spam'] = array(
         'title' => t('Spam'),
-        'page callback' => 'spam_content_comment_admin',
-        'access arguments' => array('administer spam'),
-        //TODO: remove dependencies on comment.admin.inc?
-        'file' => 'comment.admin.inc',
-        'file path' => drupal_get_path('module', 'comment'),
         'type' => MENU_LOCAL_TASK,
+	    'page callback' => 'spam_admin_list',
+    	'access arguments' => array('administer spam'),        
       );
       return $items;
 
@@ -212,6 +209,13 @@ function comment_spamapi($op, $arg1 = NU
       }
       break;
 
+    case 'delete':
+      $nid = db_result(db_query('SELECT nid FROM {comments} WHERE cid = %d', $arg1));
+      db_query('DELETE FROM {comments} WHERE cid = %d', $arg1);
+      db_query("DELETE FROM {spam_tracker} WHERE content_id = %d", $arg1);
+      _comment_update_node_statistics($nid);
+      break;
+
     case 'theme_forms':
       // Add spam comments admin form to spam.module's hook_theme.
       return array(
Only in spam: patch
diff -upr spam_orig/spam.module spam/spam.module
--- spam_orig/spam.module	2010-02-02 20:31:53.000000000 +0000
+++ spam/spam.module	2010-06-07 11:40:41.000000000 +0100
@@ -1326,7 +1326,7 @@ function spam_admin_overview() {
     '#suffix' => '</div>',
   );
   // Set desired callbacks as a subset of spam_spam_operations().
-  $options = array('markasnotspam'=>array(), 'publish'=>array(), 'unpublish'=>array());
+  $options = array('markasnotspam'=>array(), 'publish'=>array(), 'unpublish'=>array(), 'delete'=>array());
   $alloptions = module_invoke_all('spam_operations');
   foreach ($options as $operation => $array) {
     $options[$operation] = $alloptions[$operation]['label'];
@@ -1453,7 +1453,7 @@ function theme_spam_admin_overview($form
 function spam_spam_operations() {
   $operations = array(
     'markasspam' => array(
-      'label' => t('Mark as not spam'),
+      'label' => t('Mark as spam'),
       'callback' => 'spam_operations_callback',
       'callback arguments' => array('mark_as_spam'),
     ),
@@ -1477,6 +1477,11 @@ function spam_spam_operations() {
       'callback' => 'spam_operations_callback',
       'callback arguments' => array('unpublish'),
     ),
+    'delete' => array(
+      'label' => t('Delete'),
+      'callback' => 'spam_operations_callback',
+      'callback arguments' => array('delete'),
+    ),
   );
   return $operations;
 }
@@ -2095,3 +2100,13 @@ function spam_publish($type, $id, $extra
   cache_clear_all();
   spam_update_statistics(t('publish @type', array('@type' => $type)));
 }
+
+/**
+ * Invoke delete action for given content type.
+ */
+function spam_delete($type, $id, $extra = array()) {
+  spam_log(SPAM_VERBOSE, 'spam_delete', t('deleted'), $type, $id);
+  spam_invoke_module($type, 'delete', $id, $extra);
+  cache_clear_all();
+  spam_update_statistics(t('delete @type', array('@type' => $type)));
+}
\ No newline at end of file
