Index: spam/filters/spam_filter_custom/spam_filter_custom.install
===================================================================
--- spam/filters/spam_filter_custom/spam_filter_custom.install	(revision 5968)
+++ spam/filters/spam_filter_custom/spam_filter_custom.install	(working copy)
@@ -31,15 +31,23 @@
   return $schema;
 }
 
+/**
+ * Implementation of hook_install().
+ */
 function spam_filter_custom_install() {
   // Create my tables.
   drupal_install_schema('spam_filter_custom');
 }
 
+/**
+ * Implementation of hook_uninstall().
+ */
 function spam_filter_custom_uninstall() {
   // Remove tables.
   drupal_uninstall_schema('spam_filter_custom');
-  drupal_set_message('The spam_filter_custom table has been dropped.');
+  db_query("DELETE FROM {variable} WHERE name LIKE 'spam_filter_custom_%%'";
+
+  drupal_set_message('The spam filter custom data has been deleted.');
 }
 
 /**
@@ -48,13 +56,13 @@
 function spam_filter_custom_update_6101() {
   $ret = array();
   $old_vars = array('custom_probably', 'custom_probablynot', 'custom_probablynot_value', 'custom_probably_value');
-  foreach ( $old_vars as $var ) {
-    $test = variable_get($var, null);
-    if ( !empty($test) && !strcmp(substr($var,0,12),"spam_filter_") ) {
-      $ret[] = update_sql('UPDATE {variables} SET name = %s WHERE name = %s', 'spam_filter_'.$var, $var);
+  foreach ($old_vars as $var) {
+    $test = variable_get($var, NULL);
+    if (!empty($test) && !drupal_strcmp(drupal_substr($var, 0, 12), "spam_filter_")) {
+      $ret[] = update_sql("UPDATE {variables} SET name = '". $var ."' WHERE name = '". $var ."'");
     }
   }
   return $ret;
-  }
+}
 
-
+// vim: ts=2 sw=2 et syntax=php
Index: spam/filters/spam_filter_duplicate/spam_filter_duplicate.install
===================================================================
--- spam/filters/spam_filter_duplicate/spam_filter_duplicate.install	(revision 5968)
+++ spam/filters/spam_filter_duplicate/spam_filter_duplicate.install	(working copy)
@@ -33,15 +33,23 @@
   return $schema;
 }
 
+/**
+ * Implementation of hook_install().
+ */
 function spam_filter_duplicate_install() {
   // Create my tables.
   drupal_install_schema('spam_filter_duplicate');
 }
 
+/**
+ * Implementation of hook_uninstall().
+ */
 function spam_filter_duplicate_uninstall() {
   // Remove tables.
   drupal_uninstall_schema('spam_filter_duplicate');
-  drupal_set_message('The spam_filter_duplicate table has been dropped.');
+  db_query("DELETE FROM {variable} WHERE name LIKE 'spam_filter_duplicate_%%'";
+
+  drupal_set_message('The spam_filter_duplicate data has been deleted.');
 }
 
 /**
@@ -50,11 +58,14 @@
 function spam_filter_duplicate_update_6101() {
   $ret = array();
   $old_vars = array('duplicate_blacklist', 'duplicate_blacklist_action', 'duplicate_blacklist_message', 'duplicate_post_message', 'duplicate_threshold');
-  foreach ( $old_vars as $var ) {
-    $test = variable_get($var, null);
-    if ( !empty($test) && !strcmp(substr($var,0,12),"spam_filter_") ) {
-      $ret[] = update_sql('UPDATE {variables} SET name = %s WHERE name = %s', 'spam_filter_'.$var, $var);
+  foreach ($old_vars as $var) {
+    $test = variable_get($var, NULL);
+    if (!empty($test) && !drupal_strcmp(drupal_substr($var, 0, 12), "spam_filter_")) {
+      // Coder note: $var comes from our array() which means it is safe (no need to check_plain())
+      $ret[] = update_sql("UPDATE {variables} SET name = 'spam_filter_". $var ."' WHERE name = '". $var ."'");
     }
   }
   return $ret;
-  }
+}
+
+// vim: ts=2 sw=2 et syntax=php
Index: spam/filters/spam_filter_bayesian/spam_filter_bayesian.install
===================================================================
--- spam/filters/spam_filter_bayesian/spam_filter_bayesian.install	(revision 5968)
+++ spam/filters/spam_filter_bayesian/spam_filter_bayesian.install	(working copy)
@@ -83,7 +83,7 @@
 }
 
 /**
- * Install bayesian module schema.
+ * Implementation of hook_install().
  */
 function spam_filter_bayesian_install() {
   // Create tables.
@@ -91,15 +91,13 @@
 }
 
 /**
- * Completely uninstall the spam module.
+ * Implementation of hook_uninstall().
  */
 function spam_filter_bayesian_uninstall() {
   // Remove tables.
   drupal_uninstall_schema('spam_filter_bayesian');
+  db_query("DELETE FROM {variable} WHERE name LIKE 'spam_filter_baysian_%%'";
 
-  $tables = array('spam_filter_bayesian_tokens');
-  foreach ($tables as $table) {
-  }
   drupal_set_message(t('All bayesian module configuration data and tables have been deleted.'));
 }
 
@@ -109,12 +107,14 @@
 function spam_filter_bayesian_update_6101() {
   $ret = array();
   $old_vars = array('bayesian_default_probability', 'bayesian_interesting_tokens', 'bayesian_minimum_token_length', 'bayesian_tokenizer');
-  foreach ( $old_vars as $var ) {
-    $test = variable_get($var, null);
-    if ( !empty($test) && !strcmp(substr($var,0,12),"spam_filter_") ) {
-      $ret[] = update_sql('UPDATE {variables} SET name = %s WHERE name = %s', 'spam_filter_'.$var, $var);
+  foreach ($old_vars as $var) {
+    $test = variable_get($var, NULL);
+    if (!empty($test) && !drupal_strcmp(drupal_substr($var, 0, 12), "spam_filter_")) {
+      // Coder note: $var comes from our array() which means it is safe (no need to check_plain())
+      $ret[] = update_sql("UPDATE {variables} SET name = 'spam_filter_". $var ."' WHERE name = '". $var ."'");
     }
   }
   return $ret;
-  }
+}
 
+// vim: ts=2 sw=2 et syntax=php
Index: spam/filters/spam_filter_node_age/spam_filter_node_age.install
===================================================================
--- spam/filters/spam_filter_node_age/spam_filter_node_age.install	(revision 5968)
+++ spam/filters/spam_filter_node_age/spam_filter_node_age.install	(working copy)
@@ -10,16 +10,28 @@
  */
 
 /**
+ * Implementation of hook_uninstall().
+ */
+function spam_filter_node_age_uninstall() {
+  db_query("DELETE FROM {variable} WHERE name LIKE 'spam_filter_node_age_%%'";
+
+  drupal_set_message(t('All node age module configuration data has been deleted.'));
+}
+
+/**
  * Fix variable namespacing.
  */
 function spam_filter_node_age_update_6101() {
   $ret = array();
   $old_vars = array('node_age_filter_on', 'node_age_limit_long', 'node_age_limit_short', 'node_age_weight_long', 'node_age_weight_short');
-  foreach ( $old_vars as $var ) {
-    $test = variable_get($var, null);
-    if ( !empty($test) && !strcmp(substr($var,0,12),"spam_filter_") ) {
-      $ret[] = update_sql('UPDATE {variables} SET name = %s WHERE name = %s', 'spam_filter_'.$var, $var);
+  foreach ($old_vars as $var) {
+    $test = variable_get($var, NULL);
+    if (!empty($test) && !drupal_strcmp(drupal_substr($var, 0, 12), "spam_filter_")) {
+      // Coder note: $var comes from our array() which means it is safe (no need to check_plain())
+      $ret[] = update_sql("UPDATE {variables} SET name = 'spam_filter_". $var ."' WHERE name = '". $var ."'");
     }
   }
   return $ret;
-  }
\ No newline at end of file
+}
+
+// vim: ts=2 sw=2 et syntax=php
Index: spam/filters/spam_filter_url/spam_filter_url.install
===================================================================
--- spam/filters/spam_filter_url/spam_filter_url.install	(revision 5968)
+++ spam/filters/spam_filter_url/spam_filter_url.install	(working copy)
@@ -10,17 +10,27 @@
  */
 
 /**
+ * Implementation of hook_uninstall().
+ */
+function spam_filter_url_uninstall() {
+  db_query("DELETE FROM {variable} WHERE name LIKE 'spam_filter_url_%%'";
+
+  drupal_set_message(t('All spam filter URL module configuration data has been deleted.'));
+}
+
+/**
  * Fix variable namespacing.
  */
 function spam_filter_url_update_6101() {
   $ret = array();
   $old_vars = array('url_limit_repeat', 'url_limit_total', 'url_spam_filter');
-  foreach ( $old_vars as $var ) {
-    $test = variable_get($var, null);
-    if ( !empty($test) && !strcmp(substr($var,0,12),"spam_filter_") ) {
-      $ret[] = update_sql('UPDATE {variables} SET name = %s WHERE name = %s', 'spam_filter_'.$var, $var);
+  foreach ($old_vars as $var) {
+    $test = variable_get($var, NULL);
+    if (!empty($test) && !drupal_strcmp(drupal_substr($var, 0, 12), "spam_filter_")) {
+      $ret[] = update_sql("UPDATE {variables} SET name = '". $var ."' WHERE name = '". $var ."'");
     }
   }
   return $ret;
-  }
+}
 
+// vim: ts=2 sw=2 et syntax=php
