diff -ur a/etc/sqlgrey.conf b/etc/sqlgrey.conf
--- a/etc/sqlgrey.conf	2011-11-30 07:53:59.000000000 -0800
+++ b/etc/sqlgrey.conf	2011-11-30 08:01:06.000000000 -0800
@@ -142,6 +142,17 @@
 # Valid options: on/off. If set to 'on', clustering will be enabled.
 # db_cluster = on
 
+## Database table names
+# db_table_temp = temp
+# db_table_connect = connect
+# db_table_from_awl = from_awl
+# db_table_domain_awl = domain_awl
+# db_table_optin_domain = optin_domain
+# db_table_optin_email = optin_email
+# db_table_optout_domain = optout_domain
+# db_table_optout_email = optout_email
+# db_table_config = config
+
 #
 # Comma seperated list of read-only db-servers.
 # read_hosts= slave-db-1.test.com, slave-db-2.test.com ,slave-db-3.test.com
Only in b: patch-etc-sqlgrey.conf.diff
Only in b: patch-sqlgrey.diff
diff -ur a/sqlgrey b/sqlgrey
--- a/sqlgrey	2011-11-30 07:53:59.000000000 -0800
+++ b/sqlgrey	2011-11-30 07:57:46.000000000 -0800
@@ -43,16 +43,6 @@
 
 my $DB_VERSION = 3;
 
-# Table names
-my $connect       = 'connect';
-my $from_awl      = 'from_awl';
-my $domain_awl    = 'domain_awl';
-my $optin_domain  = 'optin_domain';
-my $optin_email   = 'optin_email';
-my $optout_domain = 'optout_domain';
-my $optout_email  = 'optout_email';
-my $config        = 'config';
-
 # defaults
 my %dflt;
 $dflt{loglevel}           = 2; # used for $dflt{log} entries in read_conffile()
@@ -76,6 +66,15 @@
 $dflt{db_pass}            = '';
 $dflt{db_prepare_cache}   = 0;
 $dflt{db_cluster}	  = 'off';
+$dflt{db_table_temp}          = 'temp';
+$dflt{db_table_connect}       = 'connect';
+$dflt{db_table_from_awl}      = 'from_awl';
+$dflt{db_table_domain_awl}    = 'domain_awl';
+$dflt{db_table_optin_domain}  = 'optin_domain';
+$dflt{db_table_optin_email}   = 'optin_email';
+$dflt{db_table_optout_domain} = 'optout_domain';
+$dflt{db_table_optout_email}  = 'optout_email';
+$dflt{db_table_config}        = 'config';
 $dflt{prepend}            = 1;
 $dflt{greymethod}         = 'smart';
 $dflt{optmethod}          = 'none'; # or 'optin' or 'optout'
@@ -393,34 +392,34 @@
 sub database_setup($) {
     my $self = shift;
     # AWL and connect tables checks
-    if (! $self->table_exists($from_awl)) {
+    if (! $self->table_exists($self->{sqlgrey}{db_table_from_awl})) {
 	$self->create_from_awl_table();
 	$self->create_from_awl_indexes();
     }
-    if (! $self->table_exists($domain_awl)) {
+    if (! $self->table_exists($self->{sqlgrey}{db_table_domain_awl})) {
 	$self->create_domain_awl_table();
 	$self->create_domain_awl_indexes();
     }
-    if (! $self->table_exists($connect)) {
+    if (! $self->table_exists($self->{sqlgrey}{db_table_connect})) {
 	$self->create_connect_table();
 	$self->create_connect_indexes();
     }
     # optin/out tables checks
-    if (! $self->table_exists($optin_domain)) {
+    if (! $self->table_exists($self->{sqlgrey}{db_table_optin_domain})) {
 	$self->create_optin_domain_table();
     }
-    if (! $self->table_exists($optin_email)) {
+    if (! $self->table_exists($self->{sqlgrey}{db_table_optin_email})) {
 	$self->create_optin_email_table();
     }
-    if (! $self->table_exists($optout_domain)) {
+    if (! $self->table_exists($self->{sqlgrey}{db_table_optout_domain})) {
 	$self->create_optout_domain_table();
     }
-    if (! $self->table_exists($optout_email)) {
+    if (! $self->table_exists($self->{sqlgrey}{db_table_optout_email})) {
 	$self->create_optout_email_table();
     }
 
     # config table check
-    if (! $self->table_exists($config)) {
+    if (! $self->table_exists($self->{sqlgrey}{db_table_config})) {
 	$self->create_config_table();
 	$self->setconfig('version',$DB_VERSION);
     }
@@ -446,10 +445,10 @@
     my $self = shift;
     my $param = shift;
 
-    my $sth = $self->prepare_cached("SELECT value FROM $config " .
+    my $sth = $self->prepare_cached("SELECT value FROM $self->{sqlgrey}{db_table_config} " .
 				    'WHERE parameter = ?');
     if (!defined $sth or !$sth->execute($param)) {
-	$self->mylog('dbaccess', 0, "error: couldn't access $config table: $DBI::errstr");
+	$self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_config} table: $DBI::errstr");
 	return undef;
 	#$self->mydie('getconfig error',
 	#	     'Can\'t continue: config table unreadable');
@@ -473,10 +472,10 @@
     my $param = shift;
     my $value = shift;
 
-    my $sth = $self->prepare_cached("SELECT value FROM $config " .
+    my $sth = $self->prepare_cached("SELECT value FROM $self->{sqlgrey}{db_table_config} " .
 				    'WHERE parameter = ?');
     if (!defined $sth or !$sth->execute($param)) {
-	$self->mylog('dbaccess', 0, "error: couldn't access $config table: $DBI::errstr");
+	$self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_config} table: $DBI::errstr");
 	$self->mydie('setconfig error',
 		     'Can\'t continue: config table unreadable');
     }
@@ -496,7 +495,7 @@
     my $old_value = shift;
 
 
-    my $affected_rows = $self->do("UPDATE $config SET value = " .
+    my $affected_rows = $self->do("UPDATE $self->{sqlgrey}{db_table_config} SET value = " .
                                   $self->quote($value) .
                                   ' WHERE parameter = ' .
                                   $self->quote($param) .
@@ -513,7 +512,7 @@
     my $param = shift;
     my $value = shift;
 
-    return $self->do("INSERT INTO $config (parameter, value) VALUES(" .
+    return $self->do("INSERT INTO $self->{sqlgrey}{db_table_config} (parameter, value) VALUES(" .
 		     $self->quote($param) . ',' .
 		     $self->quote($value) . ')');
 }
@@ -522,7 +521,7 @@
     my $self = shift;
 
     # No config table -> version 0
-    if (! $self->table_exists("$config")) {
+    if (! $self->table_exists("$self->{sqlgrey}{db_table_connect}")) {
 	return 0;
     }
 
@@ -561,101 +560,101 @@
     ## can we detect SQLite 3+ ?
 
     # connect
-    $self->mylog('dbaccess', 2, "$connect table: renaming ip_addr to src");
+    $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_connect} table: renaming ip_addr to src");
     if ($self->SQLite()) {
-	$self->create_connect_table('temp');
-	$self->do('INSERT INTO temp (sender_name, sender_domain, ' .
+	$self->create_connect_table($self->{sqlgrey}{db_table_temp});
+	$self->do('INSERT INTO ' . $self->{sqlgrey}{db_table_temp} . ' (sender_name, sender_domain, ' .
 		  'src, rcpt, first_seen) ' .
 		  'SELECT sender_name, sender_domain, ip_addr, ' .
 		  'rcpt, first_seen ' .
-		  "FROM $connect");
-	$self->drop_table($connect);
+		  "FROM $self->{sqlgrey}{db_table_connect}");
+	$self->drop_table($self->{sqlgrey}{db_table_connect});
     } else {
-	$self->do("ALTER TABLE $connect RENAME TO $connect" . 'old');
+	$self->do("ALTER TABLE $self->{sqlgrey}{db_table_connect} RENAME TO $self->{sqlgrey}{db_table_connect}" . 'old');
     }
     $self->create_connect_table();
     if ($self->SQLite()) {
-	$self->do("INSERT INTO $connect (sender_name, sender_domain, " .
+	$self->do("INSERT INTO $self->{sqlgrey}{db_table_connect} (sender_name, sender_domain, " .
 		  'src, rcpt, first_seen) ' .
 		  'SELECT sender_name, sender_domain, src, ' .
 		  'rcpt, first_seen ' .
-		  'FROM temp');
-	$self->drop_table('temp');
+		  'FROM ' . $self->{sqlgrey}{db_table_temp});
+	$self->drop_table($self->{sqlgrey}{db_table_temp});
     } else {
-	$self->do("INSERT INTO $connect (sender_name, sender_domain, " .
+	$self->do("INSERT INTO $self->{sqlgrey}{db_table_connect} (sender_name, sender_domain, " .
 		  'src, rcpt, first_seen) ' .
 		  'SELECT sender_name, sender_domain, ip_addr, ' .
 		  'rcpt, first_seen ' .
-		  "FROM $connect" . 'old');
-	$self->drop_table("$connect" . 'old');
+		  "FROM $self->{sqlgrey}{db_table_connect}" . 'old');
+	$self->drop_table("$self->{sqlgrey}{db_table_connect}" . 'old');
     }
-    $self->mylog('dbaccess', 2, "$connect table: adding indexes");
+    $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_connect} table: adding indexes");
     $self->create_connect_indexes();
 
     # from_awl
-    $self->mylog('dbaccess', 2, "$from_awl: renaming host_ip to src, adding first_seen");
+    $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_from_awl}: renaming host_ip to src, adding first_seen");
     if ($self->SQLite()) {
-	$self->create_from_awl_table('temp');
-	$self->do('INSERT INTO temp (sender_name, sender_domain, ' .
+	$self->create_from_awl_table($self->{sqlgrey}{db_table_temp});
+	$self->do('INSERT INTO ' . $self->{sqlgrey}{db_table_temp} . ' (sender_name, sender_domain, ' .
 		  'src, last_seen, first_seen) ' .
 		  'SELECT sender_name, sender_domain, host_ip, last_seen, last_seen ' .
-		  "FROM $from_awl");
-	$self->drop_table($from_awl);
+		  "FROM $self->{sqlgrey}{db_table_from_awl}");
+	$self->drop_table($self->{sqlgrey}{db_table_from_awl});
     } else {
-	$self->do("ALTER TABLE $from_awl RENAME TO $from_awl" . 'old');
+	$self->do("ALTER TABLE $self->{sqlgrey}{db_table_from_awl} RENAME TO $self->{sqlgrey}{db_table_from_awl}" . 'old');
     }
     if ($self->PostgreSQL()) { # we need to remove the pkey constraint
-	$self->do("ALTER TABLE $from_awl" . 'old DROP CONSTRAINT ' .
+	$self->do("ALTER TABLE $self->{sqlgrey}{db_table_from_awl}" . 'old DROP CONSTRAINT ' .
 		  'from_awl_pkey');
     }
     $self->create_from_awl_table();
     if ($self->SQLite()) {
-	$self->do("INSERT INTO $from_awl (sender_name, sender_domain, " .
+	$self->do("INSERT INTO $self->{sqlgrey}{db_table_from_awl} (sender_name, sender_domain, " .
 		  'src, last_seen, first_seen) ' .
 		  'SELECT sender_name, sender_domain, src, last_seen, last_seen ' .
-		  'FROM temp');
-	$self->drop_table('temp');
+		  'FROM ' . $self->{sqlgrey}{db_table_temp});
+	$self->drop_table($self->{sqlgrey}{db_table_temp});
     } else {
-	$self->do("INSERT INTO $from_awl (sender_name, sender_domain, " .
+	$self->do("INSERT INTO $self->{sqlgrey}{db_table_from_awl} (sender_name, sender_domain, " .
 		  'src, last_seen, first_seen) ' .
 		  'SELECT sender_name, sender_domain, host_ip, last_seen, last_seen ' .
-		  "FROM $from_awl" . 'old');
-	$self->drop_table("$from_awl" . 'old');
+		  "FROM $self->{sqlgrey}{db_table_from_awl}" . 'old');
+	$self->drop_table("$self->{sqlgrey}{db_table_from_awl}" . 'old');
     }
-    $self->mylog('dbaccess', 2, "$from_awl: adding indexes");
+    $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_from_awl}: adding indexes");
     $self->create_from_awl_indexes();
 
     # domain_awl
-    $self->mylog('dbaccess', 2, "$domain_awl: renaming host_ip to src, adding first_seen");
+    $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_domain_awl}: renaming host_ip to src, adding first_seen");
     if ($self->SQLite()) {
-	$self->create_domain_awl_table('temp');
-	$self->do('INSERT INTO temp (sender_domain, ' .
+	$self->create_domain_awl_table($self->{sqlgrey}{db_table_temp});
+	$self->do('INSERT INTO ' . $self->{sqlgrey}{db_table_temp} . ' (sender_domain, ' .
 		  'src, last_seen, first_seen) ' .
 		  'SELECT sender_domain, host_ip, last_seen, last_seen ' .
-		  "FROM $domain_awl");
-	$self->drop_table($domain_awl);
+		  "FROM $self->{sqlgrey}{db_table_domain_awl}");
+	$self->drop_table($self->{sqlgrey}{db_table_domain_awl});
     } else {
-	$self->do("ALTER TABLE $domain_awl RENAME TO $domain_awl" . 'old');
+	$self->do("ALTER TABLE $self->{sqlgrey}{db_table_domain_awl} RENAME TO $self->{sqlgrey}{db_table_domain_awl}" . 'old');
     }
     if ($self->PostgreSQL()) { # we need to remove the pkey constraint
-	$self->do("ALTER TABLE $domain_awl" . 'old DROP CONSTRAINT ' .
+	$self->do("ALTER TABLE $self->{sqlgrey}{db_table_domain_awl}" . 'old DROP CONSTRAINT ' .
 		  'domain_awl_pkey');
     }
     $self->create_domain_awl_table();
     if ($self->SQLite()) {
-	$self->do("INSERT INTO $domain_awl (sender_domain, " .
+	$self->do("INSERT INTO $self->{sqlgrey}{db_table_domain_awl} (sender_domain, " .
 		  'src, last_seen, first_seen) ' .
 		  'SELECT sender_domain, src, last_seen, last_seen ' .
-		  'FROM temp');
-	$self->drop_table('temp');
+		  'FROM ' . $self->{sqlgrey}{db_table_temp});
+	$self->drop_table($self->{sqlgrey}{db_table_temp});
     } else {
-	$self->do("INSERT INTO $domain_awl (sender_domain, src, " .
+	$self->do("INSERT INTO $self->{sqlgrey}{db_table_domain_awl} (sender_domain, src, " .
 		  'last_seen, first_seen) ' .
 		  'SELECT sender_domain, host_ip, last_seen, last_seen ' .
-		  "FROM $domain_awl" . 'old');
-	$self->do("DROP TABLE $domain_awl" . 'old');
+		  "FROM $self->{sqlgrey}{db_table_domain_awl}" . 'old');
+	$self->do("DROP TABLE $self->{sqlgrey}{db_table_domain_awl}" . 'old');
     }
-    $self->mylog('dbaccess', 2, "$domain_awl: adding indexes");
+    $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_domain_awl}: adding indexes");
     $self->create_domain_awl_indexes();
 
     # Update our schema
@@ -670,101 +669,101 @@
     ## can we detect SQLite 3+ ?
 
     # connect
-    $self->mylog('dbaccess', 2, "$connect: making room for IPv6 in src");
+    $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_connect}: making room for IPv6 in src");
     if ($self->SQLite()) {
-	$self->create_connect_table('temp');
-	$self->do('INSERT INTO temp (sender_name, sender_domain, ' .
+	$self->create_connect_table($self->{sqlgrey}{db_table_temp});
+	$self->do('INSERT INTO ' . $self->{sqlgrey}{db_table_temp} . ' (sender_name, sender_domain, ' .
 		  'src, rcpt, first_seen) ' .
 		  'SELECT sender_name, sender_domain, src, ' .
 		  'rcpt, first_seen ' .
-		  "FROM $connect");
-	$self->drop_table($connect);
+		  "FROM $self->{sqlgrey}{db_table_connect}");
+	$self->drop_table($self->{sqlgrey}{db_table_connect});
     } else {
-	$self->do("ALTER TABLE $connect RENAME TO $connect" . 'old');
+	$self->do("ALTER TABLE $self->{sqlgrey}{db_table_connect} RENAME TO $self->{sqlgrey}{db_table_connect}" . 'old');
     }
     $self->create_connect_table();
     if ($self->SQLite()) {
-	$self->do("INSERT INTO $connect (sender_name, sender_domain, " .
+	$self->do("INSERT INTO $self->{sqlgrey}{db_table_connect} (sender_name, sender_domain, " .
 		  'src, rcpt, first_seen) ' .
 		  'SELECT sender_name, sender_domain, src, ' .
 		  'rcpt, first_seen ' .
-		  'FROM temp');
-	$self->drop_table('temp');
+		  'FROM ' . $self->{sqlgrey}{db_table_temp});
+	$self->drop_table($self->{sqlgrey}{db_table_temp});
     } else {
-	$self->do("INSERT INTO $connect (sender_name, sender_domain, " .
+	$self->do("INSERT INTO $self->{sqlgrey}{db_table_connect} (sender_name, sender_domain, " .
 		  'src, rcpt, first_seen) ' .
 		  'SELECT sender_name, sender_domain, src, ' .
 		  'rcpt, first_seen ' .
-		  "FROM $connect" . 'old');
-	$self->drop_table("$connect" . 'old');
+		  "FROM $self->{sqlgrey}{db_table_connect}" . 'old');
+	$self->drop_table("$self->{sqlgrey}{db_table_connect}" . 'old');
     }
-    $self->mylog('dbaccess', 2, "$connect: adding indexes");
+    $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_connect}: adding indexes");
     $self->create_connect_indexes();
 
     # from_awl
-    $self->mylog('dbaccess', 2, "$from_awl: making room for IPv6 in src");
+    $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_from_awl}: making room for IPv6 in src");
     if ($self->SQLite()) {
-	$self->create_from_awl_table('temp');
-	$self->do('INSERT INTO temp (sender_name, sender_domain, ' .
+	$self->create_from_awl_table($self->{sqlgrey}{db_table_temp});
+	$self->do('INSERT INTO ' . $self->{sqlgrey}{db_table_temp} . ' (sender_name, sender_domain, ' .
 		  'src, last_seen, first_seen) ' .
 		  'SELECT sender_name, sender_domain, src, last_seen, last_seen ' .
-		  "FROM $from_awl");
-	$self->drop_table($from_awl);
+		  "FROM $self->{sqlgrey}{db_table_from_awl}");
+	$self->drop_table($self->{sqlgrey}{db_table_from_awl});
     } else {
-	$self->do("ALTER TABLE $from_awl RENAME TO $from_awl" . 'old');
+	$self->do("ALTER TABLE $self->{sqlgrey}{db_table_from_awl} RENAME TO $self->{sqlgrey}{db_table_from_awl}" . 'old');
     }
     if ($self->PostgreSQL()) { # we need to remove the pkey constraint
-	$self->do("ALTER TABLE $from_awl" . 'old DROP CONSTRAINT ' .
+	$self->do("ALTER TABLE $self->{sqlgrey}{db_table_from_awl}" . 'old DROP CONSTRAINT ' .
 		  'from_awl_pkey');
     }
     $self->create_from_awl_table();
     if ($self->SQLite()) {
-	$self->do("INSERT INTO $from_awl (sender_name, sender_domain, " .
+	$self->do("INSERT INTO $self->{sqlgrey}{db_table_from_awl} (sender_name, sender_domain, " .
 		  'src, last_seen, first_seen) ' .
 		  'SELECT sender_name, sender_domain, src, last_seen, last_seen ' .
-		  'FROM temp');
-	$self->drop_table('temp');
+		  'FROM ' . $self->{sqlgrey}{db_table_temp});
+	$self->drop_table($self->{sqlgrey}{db_table_temp});
     } else {
-	$self->do("INSERT INTO $from_awl (sender_name, sender_domain, " .
+	$self->do("INSERT INTO $self->{sqlgrey}{db_table_from_awl} (sender_name, sender_domain, " .
 		  'src, last_seen, first_seen) ' .
 		  'SELECT sender_name, sender_domain, src, last_seen, last_seen ' .
-		  "FROM $from_awl" . 'old');
-	$self->drop_table($from_awl . 'old');
+		  "FROM $self->{sqlgrey}{db_table_from_awl}" . 'old');
+	$self->drop_table($self->{sqlgrey}{db_table_from_awl} . 'old');
     }
-    $self->mylog('dbaccess', 2, "$from_awl: adding indexes");
+    $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_from_awl}: adding indexes");
     $self->create_from_awl_indexes();
 
     # domain_awl
-    $self->mylog('dbaccess', 2, "$domain_awl: making room for IPv6 in src");
+    $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_domain_awl}: making room for IPv6 in src");
     if ($self->SQLite()) {
-	$self->create_domain_awl_table('temp');
-	$self->do('INSERT INTO temp (sender_domain, ' .
+	$self->create_domain_awl_table($self->{sqlgrey}{db_table_temp});
+	$self->do('INSERT INTO ' . $self->{sqlgrey}{db_table_temp} . ' (sender_domain, ' .
 		  'src, last_seen, first_seen) ' .
 		  'SELECT sender_domain, src, last_seen, first_seen ' .
-		  "FROM $domain_awl");
-	$self->drop_table($domain_awl);
+		  "FROM $self->{sqlgrey}{db_table_domain_awl}");
+	$self->drop_table($self->{sqlgrey}{db_table_domain_awl});
     } else {
-	$self->do("ALTER TABLE $domain_awl RENAME TO $domain_awl" . 'old');
+	$self->do("ALTER TABLE $self->{sqlgrey}{db_table_domain_awl} RENAME TO $self->{sqlgrey}{db_table_domain_awl}" . 'old');
     }
     if ($self->PostgreSQL()) { # we need to remove the pkey constraint
-	$self->do("ALTER TABLE $domain_awl" . 'old DROP CONSTRAINT ' .
+	$self->do("ALTER TABLE $self->{sqlgrey}{db_table_domain_awl}" . 'old DROP CONSTRAINT ' .
 		  'domain_awl_pkey');
     }
     $self->create_domain_awl_table();
     if ($self->SQLite()) {
-	$self->do("INSERT INTO $domain_awl (sender_domain, " .
+	$self->do("INSERT INTO $self->{sqlgrey}{db_table_domain_awl} (sender_domain, " .
 		  'src, last_seen, first_seen) ' .
 		  'SELECT sender_domain, src, last_seen, first_seen ' .
-		  'FROM temp');
-	$self->drop_table('temp');
+		  'FROM ' . $self->{sqlgrey}{db_table_temp});
+	$self->drop_table($self->{sqlgrey}{db_table_temp});
     } else {
-	$self->do("INSERT INTO $domain_awl (sender_domain, src, " .
+	$self->do("INSERT INTO $self->{sqlgrey}{db_table_domain_awl} (sender_domain, src, " .
 		  'last_seen, first_seen) ' .
 		  'SELECT sender_domain, src, last_seen, first_seen ' .
-		  "FROM $domain_awl" . 'old');
-	$self->do("DROP TABLE $domain_awl" . 'old');
+		  "FROM $self->{sqlgrey}{db_table_domain_awl}" . 'old');
+	$self->do("DROP TABLE $self->{sqlgrey}{db_table_domain_awl}" . 'old');
     }
-    $self->mylog('dbaccess', 2, "$domain_awl: adding indexes");
+    $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_domain_awl}: adding indexes");
     $self->create_domain_awl_indexes();
 
     # Update our schema
@@ -884,7 +883,7 @@
     my $self = shift;
     # allow optional table name
     my $tablename = shift;
-    $tablename = ! defined $tablename ? $from_awl : $tablename;
+    $tablename = ! defined $tablename ? $self->{sqlgrey}{db_table_from_awl} : $tablename;
     $self->do("CREATE TABLE $tablename " .
 	      '(sender_name varchar(64) NOT NULL, ' .
 	      'sender_domain varchar(255) NOT NULL, ' .
@@ -898,17 +897,17 @@
 }
 sub create_from_awl_indexes($) {
     my $self = shift;
-    $self->do("CREATE INDEX $from_awl" . '_lseen ' .
-	     "ON $from_awl (last_seen)")
+    $self->do("CREATE INDEX $self->{sqlgrey}{db_table_from_awl}" . '_lseen ' .
+	     "ON $self->{sqlgrey}{db_table_from_awl} (last_seen)")
 	or $self->mydie('create_from_awl_table error',
-			"couldn't create index on $from_awl (last_seen)");
+			"couldn't create index on $self->{sqlgrey}{db_table_from_awl} (last_seen)");
 }
 
 sub create_domain_awl_table {
     my $self = shift;
     # allow optional table name
     my $tablename = shift;
-    $tablename = ! defined $tablename ? $domain_awl : $tablename;
+    $tablename = ! defined $tablename ? $self->{sqlgrey}{db_table_domain_awl} : $tablename;
     $self->do("CREATE TABLE $tablename " .
 	      '(sender_domain varchar(255) NOT NULL, ' .
 	      'src varchar(39) NOT NULL, ' .
@@ -920,17 +919,17 @@
 }
 sub create_domain_awl_indexes($) {
     my $self = shift;
-    $self->do("CREATE INDEX $domain_awl" . '_lseen ' .
-	     "ON $domain_awl (last_seen)")
+    $self->do("CREATE INDEX $self->{sqlgrey}{db_table_domain_awl}" . '_lseen ' .
+	     "ON $self->{sqlgrey}{db_table_domain_awl} (last_seen)")
 	or $self->mydie('create_domain_awl_table error',
-			"couldn't create index on $domain_awl (last_seen)");
+			"couldn't create index on $self->{sqlgrey}{db_table_domain_awl} (last_seen)");
 }
 
 sub create_connect_table {
     my $self = shift;
     # allow optional table name
     my $tablename = shift;
-    $tablename = ! defined $tablename ? $connect : $tablename;
+    $tablename = ! defined $tablename ? $self->{sqlgrey}{db_table_connect} : $tablename;
     # Note: no primary key, Mysql can't handle 500+ byte primary keys
     # connect should not become big enough to make it a problem
     $self->do("CREATE TABLE $tablename " .
@@ -944,62 +943,62 @@
 }
 sub create_connect_indexes($) {
     my $self = shift;
-    $self->do("CREATE INDEX $connect" . '_idx ' .
-	     "ON $connect (src, sender_domain, sender_name)")
+    $self->do("CREATE INDEX $self->{sqlgrey}{db_table_connect}" . '_idx ' .
+	     "ON $self->{sqlgrey}{db_table_connect} (src, sender_domain, sender_name)")
 	or $self->mydie('create_connect_table error',
-			"couldn't create index on $connect (src, sender_domain, sender_name)");
-    $self->do("CREATE INDEX $connect" . '_fseen ' .
-	     "ON $connect (first_seen)")
+			"couldn't create index on $self->{sqlgrey}{db_table_connect} (src, sender_domain, sender_name)");
+    $self->do("CREATE INDEX $self->{sqlgrey}{db_table_connect}" . '_fseen ' .
+	     "ON $self->{sqlgrey}{db_table_connect} (first_seen)")
 	or $self->mydie('create_connect_table error',
-			"couldn't create index on $connect (first_seen)");
+			"couldn't create index on $self->{sqlgrey}{db_table_connect} (first_seen)");
 }
 
 sub create_config_table($) {
     my $self = shift;
-    $self->do("CREATE TABLE $config " .
+    $self->do("CREATE TABLE $self->{sqlgrey}{db_table_config} " .
 	      '(parameter varchar(255) NOT NULL, ' .
 	      'value varchar(255), ' .
 	      'PRIMARY KEY (parameter));')
         or $self->mydie('create_config_table',
-			"Couldn't create table $config: $DBI::errstr");
+			"Couldn't create table $self->{sqlgrey}{db_table_config}: $DBI::errstr");
     # we just created the table: this is the current version
     $self->setconfig('version', $DB_VERSION);
 }
 
 sub create_optin_domain_table($) {
     my $self = shift;
-    $self->do("CREATE TABLE $optin_domain " .
+    $self->do("CREATE TABLE $self->{sqlgrey}{db_table_optin_domain} " .
 	      '(domain varchar(255) NOT NULL, ' .
 	      'PRIMARY KEY (domain));')
 	or $self->mydie('create_optin_domain_table',
-			"Couldn't create table $optin_domain: $DBI::errstr");
+			"Couldn't create table $self->{sqlgrey}{db_table_optin_domain}: $DBI::errstr");
 }
 
 sub create_optin_email_table($) {
     my $self = shift;
-    $self->do("CREATE TABLE $optin_email " .
+    $self->do("CREATE TABLE $self->{sqlgrey}{db_table_optin_email} " .
 	      '(email varchar(255) NOT NULL, ' .
 	      'PRIMARY KEY (email));')
 	or $self->mydie('create_optin_email_table',
-			"Couldn't create table $optin_email: $DBI::errstr");
+			"Couldn't create table $self->{sqlgrey}{db_table_optin_email}: $DBI::errstr");
 }
 
 sub create_optout_domain_table($) {
     my $self = shift;
-    $self->do("CREATE TABLE $optout_domain " .
+    $self->do("CREATE TABLE $self->{sqlgrey}{db_table_optout_domain} " .
 	      '(domain varchar(255) NOT NULL, ' .
 	      'PRIMARY KEY (domain));')
 	or $self->mydie('create_optout_domain_table',
-			"Couldn't create table $optout_domain: $DBI::errstr");
+			"Couldn't create table $self->{sqlgrey}{db_table_optout_domain}: $DBI::errstr");
 }
 
 sub create_optout_email_table {
     my $self = shift;
-    $self->do("CREATE TABLE $optout_email " .
+    $self->do("CREATE TABLE $self->{sqlgrey}{db_table_optout_email} " .
 	      '(email varchar(255) NOT NULL, ' .
 	      'PRIMARY KEY (email));')
 	or $self->mydie('create_optout_email_table',
-			"Couldn't create table $optout_email: $DBI::errstr");
+			"Couldn't create table $self->{sqlgrey}{db_table_optout_email}: $DBI::errstr");
 }
 
 ##########
@@ -1217,7 +1216,7 @@
     my ($self, $sender_name, $sender_domain, $host) = @_;
 
     # last_seen less than $self->{sqlgrey}{awl_age} days ago
-    my $sth = $self->prepare("SELECT 1 FROM $from_awl " .
+    my $sth = $self->prepare("SELECT 1 FROM $self->{sqlgrey}{db_table_from_awl} " .
 			     'WHERE sender_name = ? ' .
 			     'AND sender_domain = ? ' .
 			     'AND src = ? ' .
@@ -1227,7 +1226,7 @@
 			    );
     if (!defined $sth or !$sth->execute($sender_name, $sender_domain, $host)) {
 	$self->db_unavailable();
-	$self->mylog('dbaccess', 0, "error: couldn't access $from_awl table: $DBI::errstr");
+	$self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_from_awl} table: $DBI::errstr");
         return 1; # in doubt, accept
     } else {
 	$self->db_available();
@@ -1244,7 +1243,7 @@
     my ($self, $sender_domain, $host) = @_;
 
     # last_seen less than $self->{sqlgrey}{awl_age} days ago
-    my $sth = $self->prepare("SELECT 1 FROM $domain_awl " .
+    my $sth = $self->prepare("SELECT 1 FROM $self->{sqlgrey}{db_table_domain_awl} " .
 			     'WHERE sender_domain = ? ' .
 			     'AND src = ? ' .
 			     'AND last_seen > ' .
@@ -1253,7 +1252,7 @@
 			    );
     if (!defined $sth or !$sth->execute($sender_domain, $host)) {
 	$self->db_unavailable();
-	$self->mylog('dbaccess', 0, "error: couldn't access $domain_awl table: $DBI::errstr");
+	$self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_domain_awl} table: $DBI::errstr");
         return 1; # in doubt, accept
     } else {
 	$self->db_available();
@@ -1272,13 +1271,13 @@
     my ($self, $sender_name, $sender_domain, $host, $first_seen) = @_;
 
     # delete old entries
-    $self->do("DELETE FROM $from_awl " .
+    $self->do("DELETE FROM $self->{sqlgrey}{db_table_from_awl} " .
 	      'WHERE sender_name = ' . $self->quote($sender_name) .
 	      ' AND sender_domain = ' . $self->quote($sender_domain) .
 	      ' AND src = ' . $self->quote($host));
 
     # create new entry
-    $self->do("INSERT INTO $from_awl (sender_name, sender_domain, " .
+    $self->do("INSERT INTO $self->{sqlgrey}{db_table_from_awl} (sender_name, sender_domain, " .
 	      'src, first_seen, last_seen) VALUES(' .
 	      $self->quote($sender_name) . ',' .
 	      $self->quote($sender_domain) . ',' .
@@ -1290,12 +1289,12 @@
     my ($self, $sender_domain, $host, $first_seen) = @_;
 
     # delete old entries
-    $self->do("DELETE FROM $domain_awl " .
+    $self->do("DELETE FROM $self->{sqlgrey}{db_table_domain_awl} " .
 	      'WHERE sender_domain = ' . $self->quote($sender_domain) .
 	      ' AND src = ' . $self->quote($host));
 
     # create new entry
-    $self->do("INSERT INTO $domain_awl (sender_domain, src, " .
+    $self->do("INSERT INTO $self->{sqlgrey}{db_table_domain_awl} (sender_domain, src, " .
 	      'first_seen, last_seen) VALUES(' .
 	      $self->quote($sender_domain) . ',' .
 	      $self->quote($host) . ',' .
@@ -1307,7 +1306,7 @@
 sub update_from_awl($$$$) {
     my ($self, $sender_name, $sender_domain, $host) = @_;
 
-    $self->do("UPDATE $from_awl " .
+    $self->do("UPDATE $self->{sqlgrey}{db_table_from_awl} " .
 	      'SET last_seen = NOW(), first_seen = first_seen ' .
 	      'WHERE sender_name = ' . $self->quote($sender_name) .
 	      ' AND sender_domain = ' . $self->quote($sender_domain) .
@@ -1317,7 +1316,7 @@
 sub update_domain_awl($$$) {
     my ($self, $sender_domain, $host) = @_;
 
-    $self->do("UPDATE $domain_awl " .
+    $self->do("UPDATE $self->{sqlgrey}{db_table_domain_awl} " .
 	      'SET last_seen = NOW(), first_seen = first_seen ' .
 	      'WHERE sender_domain = ' . $self->quote($sender_domain) .
 	      ' AND src = ' . $self->quote($host));
@@ -1327,11 +1326,11 @@
 sub count_from_awl($$$) {
     my ($self, $sender_domain, $host) = @_;
 
-    my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $from_awl " .
+    my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $self->{sqlgrey}{db_table_from_awl} " .
 				    'WHERE sender_domain = ? AND src = ?');
     if (!defined $sth or !$sth->execute($sender_domain, $host)) {
 	$self->db_unavailable();
-	$self->mylog('dbaccess', 0, "error: couldn't access $from_awl table: $DBI::errstr");
+	$self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_from_awl} table: $DBI::errstr");
         return 0; # do as if table is empty
     } else {
 	$self->db_available();
@@ -1350,11 +1349,11 @@
 sub count_src_domain_awl($$) {
     my ($self, $host) = @_;
 
-    my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $domain_awl " .
+    my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $self->{sqlgrey}{db_table_domain_awl} " .
 				    'WHERE src = ?');
     if (!defined $sth or !$sth->execute($host)) {
 	$self->db_unavailable();
-	$self->mylog('dbaccess', 0, "error: couldn't access $domain_awl table: $DBI::errstr");
+	$self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_domain_awl} table: $DBI::errstr");
         return 0; # do as if table is empty
     } else {
 	$self->db_available();
@@ -1373,11 +1372,11 @@
 sub count_src_from_awl($$) {
     my ($self, $host) = @_;
 
-    my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $from_awl " .
+    my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $self->{sqlgrey}{db_table_from_awl} " .
 				    'WHERE src = ?');
     if (!defined $sth or !$sth->execute($host)) {
 	$self->db_unavailable();
-	$self->mylog('dbaccess', 0, "error: couldn't access $from_awl table: $DBI::errstr");
+	$self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_from_awl} table: $DBI::errstr");
         return 0; # do as if table is empty
     } else {
 	$self->db_available();
@@ -1396,11 +1395,11 @@
 sub count_src_connect($$) {
     my ($self, $host) = @_;
 
-    my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $connect " .
+    my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $self->{sqlgrey}{db_table_connect} " .
 				    'WHERE src = ?');
     if (!defined $sth or !$sth->execute($host)) {
 	$self->db_unavailable();
-	$self->mylog('dbaccess', 0, "error: couldn't access $connect table: $DBI::errstr");
+	$self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_connect} table: $DBI::errstr");
         return 0; # do as if table is empty
     } else {
 	$self->db_available();
@@ -1420,7 +1419,7 @@
 sub cleanup_from_awl($) {
     my ($self) = @_;
 
-    my $rows = $self->do("DELETE FROM $from_awl " .
+    my $rows = $self->do("DELETE FROM $self->{sqlgrey}{db_table_from_awl} " .
                 	 'WHERE last_seen < ' .
 	                 $self->past_tstamp($self->{sqlgrey}{awl_age}, 'DAY')
 	                );
@@ -1432,7 +1431,7 @@
 sub cleanup_domain_awl($) {
     my ($self) = @_;
 
-    my $rows = $self->do("DELETE FROM $domain_awl " .
+    my $rows = $self->do("DELETE FROM $self->{sqlgrey}{db_table_domain_awl} " .
 	                 'WHERE last_seen < ' .
 	                 $self->past_tstamp($self->{sqlgrey}{awl_age}, 'DAY')
 	                );
@@ -1443,14 +1442,14 @@
 
 sub delete_domain_from_mail_awl($$$) {
     my ($self, $domain, $host) = @_;
-    $self->do("DELETE FROM $from_awl " .
+    $self->do("DELETE FROM $self->{sqlgrey}{db_table_from_awl} " .
 	      'WHERE sender_domain = ' . $self->quote($domain) .
 	      ' AND src = ' . $self->quote($host));
 }
 
 sub delete_domain_from_connect($$$) {
     my ($self, $domain, $host) = @_;
-    $self->do("DELETE FROM $connect " .
+    $self->do("DELETE FROM $self->{sqlgrey}{db_table_connect} " .
 	      'WHERE sender_domain = ' . $self->quote($domain) .
 	      ' AND src = ' . $self->quote($host));
 }
@@ -1466,12 +1465,12 @@
 
 sub get_first_seen_in_from_awl($$$) {
     my ($self, $domain, $host) = @_;
-    my $sth = $self->prepare_cached("SELECT MIN(first_seen) FROM $from_awl " .
+    my $sth = $self->prepare_cached("SELECT MIN(first_seen) FROM $self->{sqlgrey}{db_table_from_awl} " .
 				    'WHERE sender_domain = ? AND src = ?');
 
     if (!defined $sth or !$sth->execute($domain, $host)) {
 	$self->db_unavailable();
-	$self->mylog('dbaccess', 0, "error: couldn't access $from_awl table: $DBI::errstr");
+	$self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_from_awl} table: $DBI::errstr");
         return 0; # do as if table is empty
     } else {
 	$self->db_available();
@@ -1495,7 +1494,7 @@
 
     # last_seen less than $self->{sqlgrey}{max_connect_age} hours ago
     # but more than $self->{sqlgrey}{reconnect_delay} minutes ago
-    my $sth = $self->prepare("SELECT 1 FROM $connect " .
+    my $sth = $self->prepare("SELECT 1 FROM $self->{sqlgrey}{db_table_connect} " .
 			     'WHERE sender_name = ? AND sender_domain = ? ' .
 			     'AND src = ? AND rcpt = ? ' .
 			     'AND first_seen BETWEEN ' .
@@ -1507,7 +1506,7 @@
 			    );
     if (!defined $sth or !$sth->execute($sender_name, $sender_domain, $addr, $rcpt)) {
 	$self->db_unavailable();
-        $self->mylog('dbaccess', 0, "error: couldn't access $connect table: $DBI::errstr");
+        $self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_connect} table: $DBI::errstr");
         return 1; # in doubt, accept
     } else {
 	$self->db_available();
@@ -1525,7 +1524,7 @@
     my ($self, $sender_name, $sender_domain, $addr, $rcpt) = @_;
 
     # last_seen less than $self->{sqlgrey}{reconnect_delay} minutes ago
-    my $sth = $self->prepare("SELECT 1 FROM $connect WHERE sender_name = ? " .
+    my $sth = $self->prepare("SELECT 1 FROM $self->{sqlgrey}{db_table_connect} WHERE sender_name = ? " .
 			     'AND sender_domain = ? ' .
 			     'AND src = ? AND rcpt = ? ' .
 			     'AND first_seen >= ' .
@@ -1534,7 +1533,7 @@
 			     );
     if (!defined $sth or !$sth->execute($sender_name, $sender_domain, $addr, $rcpt)) {
 	$self->db_unavailable();
-        $self->mylog('dbaccess', 0, "error: Couldn't access $connect table: $DBI::errstr");
+        $self->mylog('dbaccess', 0, "error: Couldn't access $self->{sqlgrey}{db_table_connect} table: $DBI::errstr");
         return 0; # in doubt, accept
     } else {
 	$self->db_available();
@@ -1552,7 +1551,7 @@
     my ($self, $sender_name, $sender_domain, $addr, $rcpt) = @_;
 
     # create new entry
-    $self->do("INSERT INTO $connect (sender_name, sender_domain, " .
+    $self->do("INSERT INTO $self->{sqlgrey}{db_table_connect} (sender_name, sender_domain, " .
 	      'src, rcpt, first_seen) ' .
 	      'VALUES(' .
 	      $self->quote($sender_name) . ',' .
@@ -1569,9 +1568,9 @@
     if ($self->MySQL()) {
         $query = 'SELECT first_seen, SEC_TO_TIME(UNIX_TIMESTAMP(NOW())-' .
 	    'UNIX_TIMESTAMP(first_seen)) ' .
-		"FROM $connect ";
+		"FROM $self->{sqlgrey}{db_table_connect} ";
     } else {
-        $query = "SELECT first_seen, now() - first_seen FROM $connect ";
+        $query = "SELECT first_seen, now() - first_seen FROM $self->{sqlgrey}{db_table_connect} ";
     }
     $query .= 'WHERE sender_name = ? AND sender_domain = ? ' .
 	      'AND src = ? AND rcpt = ?';
@@ -1600,7 +1599,7 @@
 
     $deverp_sender_name =~ s/#/%/g;
 
-    $self->do("DELETE FROM $connect " .
+    $self->do("DELETE FROM $self->{sqlgrey}{db_table_connect} " .
 	      'WHERE src = ' . $self->quote($addr) .
 	      ' AND sender_domain = ' . $self->quote($sender_domain) .
 	      ' AND sender_name LIKE ' . $self->quote($deverp_sender_name) );
@@ -1615,7 +1614,7 @@
         # Print probable SPAM:
         my $sth = $self->prepare('SELECT sender_name, sender_domain, src, ' .
 				 'rcpt, first_seen ' .
-				 "FROM $connect " .
+				 "FROM $self->{sqlgrey}{db_table_connect} " .
 				 'WHERE first_seen < ' .
 				 $tstamp);
         if (defined $sth and $sth->execute()) {
@@ -1632,7 +1631,7 @@
 			 "error: couldn't list detected spam attempts: $DBI::errstr");
         }
     }
-    my $rows = $self->do("DELETE FROM $connect " .
+    my $rows = $self->do("DELETE FROM $self->{sqlgrey}{db_table_connect} " .
 	                 'WHERE first_seen < ' .
 	                 $tstamp
 	                );
@@ -2011,21 +2010,21 @@
 sub is_in_optin_domain($$) {
     my ($self, $domain) = @_;
 
-    my $sth = $self->prepare_cached("SELECT 1 FROM $optin_domain " .
+    my $sth = $self->prepare_cached("SELECT 1 FROM $self->{sqlgrey}{db_table_optin_domain} " .
 				    'WHERE domain = ?');
     if (!defined $sth or !$sth->execute($domain)) {
 	$self->db_unavailable();
-	$self->mylog('dbaccess', 0, "error: couldn't access $optin_domain table: $DBI::errstr");
+	$self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_optin_domain} table: $DBI::errstr");
         return 0; # in doubt, no greylisting
     } else {
 	$self->db_available();
     }
     my $result = $sth->fetchall_arrayref();
     if ($#$result != 0) {
-	$self->mylog('optin', 4, "$domain not in $optin_domain");
+	$self->mylog('optin', 4, "$domain not in $self->{sqlgrey}{db_table_optin_domain}");
 	return 0; # not a single entry
     } else {
-	$self->mylog('optin', 4, "$domain in $optin_domain");
+	$self->mylog('optin', 4, "$domain in $self->{sqlgrey}{db_table_optin_domain}");
 	return 1; # one single entry (no multiple entries by design)
     }
 }
@@ -2033,21 +2032,21 @@
 sub is_in_optin_email($$) {
     my ($self, $email) = @_;
 
-    my $sth = $self->prepare_cached("SELECT 1 FROM $optin_email " .
+    my $sth = $self->prepare_cached("SELECT 1 FROM $self->{sqlgrey}{db_table_optin_email} " .
 				    'WHERE email = ?');
     if (!defined $sth or !$sth->execute($email)) {
 	$self->db_unavailable();
-	$self->mylog('dbaccess', 0, "error: couldn't access $optin_email table: $DBI::errstr");
+	$self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_optin_email} table: $DBI::errstr");
         return 0; # in doubt, no greylisting
     } else {
 	$self->db_available();
     }
     my $result = $sth->fetchall_arrayref();
     if ($#$result != 0) {
-	$self->mylog('optin', 4, "$email not in $optin_email");
+	$self->mylog('optin', 4, "$email not in $self->{sqlgrey}{db_table_optin_email}");
 	return 0; # not a single entry
     } else {
-	$self->mylog('optin', 4, "$email in $optin_email");
+	$self->mylog('optin', 4, "$email in $self->{sqlgrey}{db_table_optin_email}");
 	return 1; # one single entry (no multiple entries by design)
     }
 }
@@ -2055,21 +2054,21 @@
 sub is_in_optout_domain($$) {
     my ($self, $domain) = @_;
 
-    my $sth = $self->prepare_cached("SELECT 1 FROM $optout_domain " .
+    my $sth = $self->prepare_cached("SELECT 1 FROM $self->{sqlgrey}{db_table_optout_domain} " .
 				    'WHERE domain = ?');
     if (!defined $sth or !$sth->execute($domain)) {
 	$self->db_unavailable();
-	$self->mylog('dbaccess', 0, "error: couldn't access $optout_domain table: $DBI::errstr");
+	$self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_optout_domain} table: $DBI::errstr");
         return 1; # in doubt, no greylisting
     } else {
 	$self->db_available();
     }
     my $result = $sth->fetchall_arrayref();
     if ($#$result != 0) {
-	$self->mylog('optin', 4, "$domain not in $optout_domain");
+	$self->mylog('optin', 4, "$domain not in $self->{sqlgrey}{db_table_optout_domain}");
 	return 0; # not a single entry
     } else {
-	$self->mylog('optin', 4, "$domain in $optout_domain");
+	$self->mylog('optin', 4, "$domain in $self->{sqlgrey}{db_table_optout_domain}");
 	return 1; # one single entry (no multiple entries by design)
     }
 }
@@ -2077,21 +2076,21 @@
 sub is_in_optout_email($$) {
     my ($self, $email) = @_;
 
-    my $sth = $self->prepare_cached("SELECT 1 FROM $optout_email " .
+    my $sth = $self->prepare_cached("SELECT 1 FROM $self->{sqlgrey}{db_table_optout_email} " .
 				    'WHERE email = ?');
     if (!defined $sth or !$sth->execute($email)) {
 	$self->db_unavailable();
-	$self->mylog('dbaccess', 0, "error: couldn't access $optin_email table: $DBI::errstr");
+	$self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_optin_email} table: $DBI::errstr");
         return 1; # in doubt, no greylisting
     } else {
 	$self->db_available();
     }
     my $result = $sth->fetchall_arrayref();
     if ($#$result != 0) {
-	$self->mylog('optin', 4, "$email not in $optout_email");
+	$self->mylog('optin', 4, "$email not in $self->{sqlgrey}{db_table_optout_email}");
 	return 0; # not a single entry
     } else {
-	$self->mylog('optin', 4, "$email in $optout_email");
+	$self->mylog('optin', 4, "$email in $self->{sqlgrey}{db_table_optout_email}");
 	return 1; # one single entry (no multiple entries by design)
     }
 }
@@ -2642,6 +2641,15 @@
 	    db_user         => $dflt{db_user},
             db_pass         => $dflt{db_pass},
 	    db_available    => 1, # used to trigger e-mails
+            db_table_temp          => $dflt{db_table_temp},
+            db_table_connect       => $dflt{db_table_connect},
+            db_table_from_awl      => $dflt{db_table_from_awl},
+            db_table_domain_awl    => $dflt{db_table_domain_awl},
+            db_table_optin_domain  => $dflt{db_table_optin_domain},
+            db_table_optin_email   => $dflt{db_table_optin_email},
+            db_table_optout_domain => $dflt{db_table_optout_domain},
+            db_table_optout_email  => $dflt{db_table_optout_email},
+            db_table_config        => $dflt{db_table_config},
 	    clean_method    => $dflt{clean_method},
 	    prepend         => $dflt{prepend},
 	    greymethod      => $dflt{greymethod},