diff -urN dbmail-2.1cvs091404.orig/auth/authsql.c dbmail-2.1cvs091404/auth/authsql.c
--- dbmail-2.1cvs091404.orig/auth/authsql.c	2004-09-10 04:02:56.000000000 -0400
+++ dbmail-2.1cvs091404/auth/authsql.c	2004-09-14 15:45:28.000000000 -0400
@@ -47,6 +47,9 @@
 #include <crypt.h>
 #endif
 
+extern db_param_t _db_params;
+#define DBPFX _db_params.pfx
+
 /**
  * used for query strings
  */
@@ -104,7 +107,7 @@
 	db_escape_string(escaped_username, username, strlen(username));
 
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "SELECT user_idnr FROM dbmail_users WHERE userid='%s'",
+		 "SELECT user_idnr FROM %susers WHERE userid='%s'",DBPFX,
 		 escaped_username);
 	free(escaped_username);
 
@@ -141,7 +144,7 @@
 	/* do a inverted (DESC) query because adding the names to the
 	 * final list inverts again */
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "SELECT userid FROM dbmail_users ORDER BY userid DESC");
+		 "SELECT userid FROM %susers ORDER BY userid DESC",DBPFX);
 
 	if (__auth_query(__auth_query_data) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not retrieve user list",
@@ -172,7 +175,7 @@
 	*client_idnr = 0;
 
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "SELECT client_idnr FROM dbmail_users WHERE user_idnr = '%llu'",
+		 "SELECT client_idnr FROM %susers WHERE user_idnr = '%llu'",DBPFX,
 		 user_idnr);
 
 	if (__auth_query(__auth_query_data) == -1) {
@@ -202,7 +205,7 @@
 	*maxmail_size = 0;
 
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "SELECT maxmail_size FROM dbmail_users WHERE user_idnr = '%llu'",
+		 "SELECT maxmail_size FROM %susers WHERE user_idnr = '%llu'",DBPFX,
 		 user_idnr);
 
 	if (__auth_query(__auth_query_data) == -1) {
@@ -242,7 +245,7 @@
 	}
 
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "SELECT encryption_type FROM dbmail_users WHERE user_idnr = '%llu'",
+		 "SELECT encryption_type FROM %susers WHERE user_idnr = '%llu'",DBPFX,
 		 user_idnr);
 
 	if (__auth_query(__auth_query_data) == -1) {
@@ -288,8 +291,8 @@
 	}
 
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "SELECT deliver_to FROM dbmail_aliases WHERE "
-		 "lower(alias) = lower('%s')", username);
+		 "SELECT deliver_to FROM %saliases WHERE "
+		 "lower(alias) = lower('%s')",DBPFX, username);
 	trace(TRACE_DEBUG, "%s,%s: checks [%d]", __FILE__, __func__,
 	      checks);
 
@@ -378,8 +381,8 @@
 	      __FILE__, __func__, username);
 
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "SELECT deliver_to FROM dbmail_aliases "
-		 "WHERE lower(alias) = lower('%s')", username);
+		 "SELECT deliver_to FROM %saliases "
+		 "WHERE lower(alias) = lower('%s')",DBPFX, username);
 	trace(TRACE_DEBUG, "%s,%s: checks [%d]", __FILE__, __func__,
 	      checks);
 
@@ -461,7 +464,7 @@
 #ifdef _DBAUTH_STRICT_USER_CHECK
 	/* first check to see if this user already exists */
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "SELECT * FROM dbmail_users WHERE userid = '%s'", username);
+		 "SELECT * FROM %susers WHERE userid = '%s'",DBPFX, username);
 
 	if (__auth_query(__auth_query_data) == -1) {
 		/* query failed */
@@ -490,9 +493,9 @@
 	db_escape_string(escapedpass, password, strlen(password));
 
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "INSERT INTO dbmail_users "
+		 "INSERT INTO %susers "
 		 "(userid,passwd,client_idnr,maxmail_size,encryption_type, last_login) VALUES "
-		 "('%s','%s',%llu,'%llu','%s', CURRENT_TIMESTAMP)",
+		 "('%s','%s',%llu,'%llu','%s', CURRENT_TIMESTAMP)",DBPFX,
 		 username, escapedpass, clientid, maxmail,
 		 enctype ? enctype : "");
 
@@ -510,7 +513,7 @@
 int auth_delete_user(const char *username)
 {
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "DELETE FROM dbmail_users WHERE userid = '%s'", username);
+		 "DELETE FROM %susers WHERE userid = '%s'",DBPFX, username);
 
 	if (__auth_query(__auth_query_data) == -1) {
 		/* query failed */
@@ -525,7 +528,7 @@
 int auth_change_username(u64_t user_idnr, const char *new_name)
 {
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "UPDATE dbmail_users SET userid = '%s' WHERE user_idnr='%llu'",
+		 "UPDATE %susers SET userid = '%s' WHERE user_idnr='%llu'",DBPFX,
 		 new_name, user_idnr);
 
 	if (__auth_query(__auth_query_data) == -1) {
@@ -542,8 +545,8 @@
 			 const char *enctype)
 {
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "UPDATE dbmail_users SET passwd = '%s', encryption_type = '%s' "
-		 " WHERE user_idnr='%llu'",
+		 "UPDATE %susers SET passwd = '%s', encryption_type = '%s' "
+		 " WHERE user_idnr='%llu'",DBPFX,
 		 new_pass, enctype ? enctype : "", user_idnr);
 
 	if (__auth_query(__auth_query_data) == -1) {
@@ -559,8 +562,8 @@
 int auth_change_clientid(u64_t user_idnr, u64_t new_cid)
 {
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "UPDATE dbmail_users SET client_idnr = '%llu' "
-		 "WHERE user_idnr='%llu'", new_cid, user_idnr);
+		 "UPDATE %susers SET client_idnr = '%llu' "
+		 "WHERE user_idnr='%llu'",DBPFX, new_cid, user_idnr);
 
 	if (__auth_query(__auth_query_data) == -1) {
 		trace(TRACE_ERROR,
@@ -575,8 +578,8 @@
 int auth_change_mailboxsize(u64_t user_idnr, u64_t new_size)
 {
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "UPDATE dbmail_users SET maxmail_size = '%llu' "
-		 "WHERE user_idnr = '%llu'", new_size, user_idnr);
+		 "UPDATE %susers SET maxmail_size = '%llu' "
+		 "WHERE user_idnr = '%llu'",DBPFX, new_size, user_idnr);
 
 	if (__auth_query(__auth_query_data) == -1) {
 		trace(TRACE_ERROR,
@@ -622,8 +625,8 @@
 	db_escape_string(escuser, username, strlen(username));
 
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "SELECT user_idnr, passwd, encryption_type FROM dbmail_users "
-		 "WHERE userid = '%s'", escuser);
+		 "SELECT user_idnr, passwd, encryption_type FROM %susers "
+		 "WHERE userid = '%s'",DBPFX, escuser);
 
 	if (__auth_query(__auth_query_data) == -1) {
 		trace(TRACE_ERROR,
@@ -707,8 +710,8 @@
 
 		/* log login in the dbase */
 		snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-			 "UPDATE dbmail_users SET last_login = '%s' "
-			 "WHERE user_idnr = '%llu'", timestring,
+			 "UPDATE %susers SET last_login = '%s' "
+			 "WHERE user_idnr = '%llu'",DBPFX, timestring,
 			 *user_idnr);
 
 		if (__auth_query(__auth_query_data) == -1)
@@ -740,8 +743,8 @@
 		return -1;
 	}
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "SELECT passwd,user_idnr FROM dbmail_users WHERE "
-		 "userid = '%s'", escaped_username);
+		 "SELECT passwd,user_idnr FROM %susers WHERE "
+		 "userid = '%s'",DBPFX, escaped_username);
 	free(escaped_username);
 
 	if (__auth_query(__auth_query_data) == -1) {
@@ -794,8 +797,8 @@
 
 		/* log login in the dbase */
 		snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-			 "UPDATE dbmail_users SET last_login = '%s' "
-			 "WHERE user_idnr = '%llu'", timestring,
+			 "UPDATE %susers SET last_login = '%s' "
+			 "WHERE user_idnr = '%llu'",DBPFX, timestring,
 			 user_idnr);
 
 		if (__auth_query(__auth_query_data) == -1)
@@ -820,7 +823,7 @@
 	char *returnid = NULL;
 
 	snprintf(__auth_query_data, AUTH_QUERY_SIZE,
-		 "SELECT userid FROM dbmail_users WHERE user_idnr = '%llu'",
+		 "SELECT userid FROM %susers WHERE user_idnr = '%llu'",DBPFX,
 		 user_idnr);
 
 	if (__auth_query(__auth_query_data) == -1) {
@@ -876,7 +879,7 @@
 	*num_users = 0;
 
 	snprintf(__auth_query_data, DEF_QUERYSIZE,
-		 "SELECT user_idnr FROM dbmail_users WHERE client_idnr = '%llu'",
+		 "SELECT user_idnr FROM %susers WHERE client_idnr = '%llu'",DBPFX,
 		 client_id);
 	if (__auth_query(__auth_query_data) == -1) {
 		trace(TRACE_ERROR, "%s,%s: error gettings users for "
@@ -907,7 +910,7 @@
 	const char *query_result = NULL;
 
 	snprintf(__auth_query_data, DEF_QUERYSIZE,
-		 "SELECT deliver_to FROM dbmail_aliases WHERE alias = '%s'",
+		 "SELECT deliver_to FROM %saliases WHERE alias = '%s'",DBPFX,
 		 alias);
 
 	if (__auth_query(__auth_query_data) == -1) {
@@ -937,9 +940,9 @@
 {
 	/* check if this alias already exists */
 	snprintf(__auth_query_data, DEF_QUERYSIZE,
-		 "SELECT alias_idnr FROM dbmail_aliases "
+		 "SELECT alias_idnr FROM %saliases "
 		 "WHERE lower(alias) = lower('%s') AND deliver_to = '%llu' "
-		 "AND client_idnr = '%llu'", alias, user_idnr, clientid);
+		 "AND client_idnr = '%llu'",DBPFX, alias, user_idnr, clientid);
 
 	if (__auth_query(__auth_query_data) == -1) {
 		/* query failed */
@@ -960,8 +963,8 @@
 
 	db_free_result();
 	snprintf(__auth_query_data, DEF_QUERYSIZE,
-		 "INSERT INTO dbmail_aliases (alias,deliver_to,client_idnr) "
-		 "VALUES ('%s','%llu','%llu')", alias, user_idnr,
+		 "INSERT INTO %saliases (alias,deliver_to,client_idnr) "
+		 "VALUES ('%s','%llu','%llu')",DBPFX, alias, user_idnr,
 		 clientid);
 
 	if (db_query(__auth_query_data) == -1) {
@@ -979,16 +982,16 @@
 	/* check if this alias already exists */
 	if (clientid != 0) {
 		snprintf(__auth_query_data, DEF_QUERYSIZE,
-			 "SELECT alias_idnr FROM dbmail_aliases "
+			 "SELECT alias_idnr FROM %saliases "
 			 "WHERE lower(alias) = lower('%s') AND "
 			 "lower(deliver_to) = lower('%s') "
-			 "AND client_idnr = '%llu'", alias, deliver_to,
+			 "AND client_idnr = '%llu'",DBPFX, alias, deliver_to,
 			 clientid);
 	} else {
 		snprintf(__auth_query_data, DEF_QUERYSIZE,
-			 "SELECT alias_idnr FROM dbmail_aliases "
+			 "SELECT alias_idnr FROM %saliases "
 			 "WHERE lower(alias) = lower('%s') "
-			 "AND lower(deliver_to) = lower('%s') ",
+			 "AND lower(deliver_to) = lower('%s') ",DBPFX,
 			 alias, deliver_to);
 	}
 
@@ -1011,8 +1014,8 @@
 	db_free_result();
 
 	snprintf(__auth_query_data, DEF_QUERYSIZE,
-		 "INSERT INTO dbmail_aliases (alias,deliver_to,client_idnr) "
-		 "VALUES ('%s','%s','%llu')", alias, deliver_to, clientid);
+		 "INSERT INTO %saliases (alias,deliver_to,client_idnr) "
+		 "VALUES ('%s','%s','%llu')",DBPFX, alias, deliver_to, clientid);
 	if (__auth_query(__auth_query_data) == -1) {
 		/* query failed */
 		trace(TRACE_ERROR, "%s,%s: query for adding alias failed",
@@ -1025,8 +1028,8 @@
 int auth_removealias(u64_t user_idnr, const char *alias)
 {
 	snprintf(__auth_query_data, DEF_QUERYSIZE,
-		 "DELETE FROM dbmail_aliases WHERE deliver_to='%llu' "
-		 "AND lower(alias) = lower('%s')", user_idnr, alias);
+		 "DELETE FROM %saliases WHERE deliver_to='%llu' "
+		 "AND lower(alias) = lower('%s')",DBPFX, user_idnr, alias);
 
 	if (__auth_query(__auth_query_data) == -1) {
 		/* query failed */
@@ -1040,8 +1043,8 @@
 int auth_removealias_ext(const char *alias, const char *deliver_to)
 {
 	snprintf(__auth_query_data, DEF_QUERYSIZE,
-		 "DELETE FROM dbmail_aliases WHERE lower(deliver_to) = lower('%s') "
-		 "AND lower(alias) = lower('%s')", deliver_to, alias);
+		 "DELETE FROM %saliases WHERE lower(deliver_to) = lower('%s') "
+		 "AND lower(alias) = lower('%s')",DBPFX, deliver_to, alias);
 	if (db_query(__auth_query_data) == -1) {
 		/* query failed */
 		trace(TRACE_ERROR, "%s,%s: query failed", __FILE__,
@@ -1067,8 +1070,8 @@
 	/* do a inverted (DESC) query because adding the names to the 
 	 * final list inverts again */
 	snprintf(__auth_query_data, DEF_QUERYSIZE,
-		 "SELECT alias FROM dbmail_aliases WHERE deliver_to = '%llu' "
-		 "ORDER BY alias DESC", user_idnr);
+		 "SELECT alias FROM %saliases WHERE deliver_to = '%llu' "
+		 "ORDER BY alias DESC",DBPFX, user_idnr);
 
 	if (__auth_query(__auth_query_data) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not retrieve  list",
diff -urN dbmail-2.1cvs091404.orig/config.c dbmail-2.1cvs091404/config.c
--- dbmail-2.1cvs091404.orig/config.c	2004-08-23 10:50:34.000000000 -0400
+++ dbmail-2.1cvs091404/config.c	2004-09-14 14:35:37.000000000 -0400
@@ -349,6 +349,9 @@
 	if (GetConfigValue("sqlsocket", "DBMAIL", sock_string) < 0)
 		trace(TRACE_FATAL, "%s,%s: error getting config!",
 		      __FILE__, __func__);
+	if (GetConfigValue("table_prefix", "DBMAIL", db_params->pfx) < 0)
+		trace(TRACE_FATAL, "%s,%s: error getting config!",
+		      __FILE__, __func__);
 
 	/* check if port_string holds a value */
 	if (strlen(port_string) != 0) {
diff -urN dbmail-2.1cvs091404.orig/db.c dbmail-2.1cvs091404/db.c
--- dbmail-2.1cvs091404.orig/db.c	2004-09-14 11:30:40.000000000 -0400
+++ dbmail-2.1cvs091404/db.c	2004-09-14 15:18:10.000000000 -0400
@@ -55,13 +55,16 @@
 extern const char *TO_CHAR;
 extern const char *TO_DATE;
 
+extern db_param_t _db_params;
+
+#define DBPFX _db_params.pfx
 /** list of tables used in dbmail */
 #define DB_NTABLES 11
 const char *DB_TABLENAMES[DB_NTABLES] = {
-	"dbmail_users", "dbmail_aliases", "dbmail_mailboxes",
-	"dbmail_messages", "dbmail_physmessage", "dbmail_messageblks",
-	"dbmail_acl", "dbmail_subscription", "dbmail_pbsp",
-	"dbmail_auto_notifications", "dbmail_auto_replies"
+	"users", "aliases", "mailboxes",
+	"messages", "physmessage", "messageblks",
+	"acl", "subscription", "pbsp",
+	"auto_notifications", "auto_replies"
 };
 
 /** can be used for making queries to db backend */
@@ -180,8 +183,8 @@
 	*physmessage_id = 0;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT physmessage_id FROM dbmail_messages "
-		 "WHERE message_idnr = '%llu'", message_idnr);
+		 "SELECT physmessage_id FROM %smessages "
+		 "WHERE message_idnr = '%llu'", DBPFX, message_idnr);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: error getting physmessage_id",
@@ -207,8 +210,8 @@
 	assert(curmail_size != NULL);
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT curmail_size FROM dbmail_users "
-		 "WHERE user_idnr = '%llu'", user_idnr);
+		 "SELECT curmail_size FROM %susers "
+		 "WHERE user_idnr = '%llu'", DBPFX, user_idnr);
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: error getting used quotum for "
 		      "user [%llu]", __FILE__, __func__, user_idnr);
@@ -224,8 +227,8 @@
 int db_set_quotum_used(u64_t user_idnr, u64_t curmail_size)
 {
 	snprintf(query, DEF_QUERYSIZE,
-		 "UPDATE dbmail_users SET curmail_size = '%llu' "
-		 "WHERE user_idnr = '%llu'", curmail_size, user_idnr);
+		 "UPDATE %susers SET curmail_size = '%llu' "
+		 "WHERE user_idnr = '%llu'", DBPFX, curmail_size, user_idnr);
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: error setting used quotum of "
 		      "[%llu] for user [%llu]",
@@ -253,8 +256,8 @@
 		return 0;
 		
 	snprintf(query, DEF_QUERYSIZE,
-		 "UPDATE dbmail_users SET curmail_size = curmail_size + '%llu' "
-		 "WHERE user_idnr = '%llu'", add_size, user_idnr);
+		 "UPDATE %susers SET curmail_size = curmail_size + '%llu' "
+		 "WHERE user_idnr = '%llu'", DBPFX, add_size, user_idnr);
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: error adding [%llu] to quotum "
 		      "of user [%llu]", __FILE__, __func__,
@@ -283,8 +286,8 @@
 		return 0;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "UPDATE dbmail_users SET curmail_size = curmail_size - '%llu' "
-		 "WHERE user_idnr = '%llu'", sub_size, user_idnr);
+		 "UPDATE %susers SET curmail_size = curmail_size - '%llu' "
+		 "WHERE user_idnr = '%llu'", DBPFX, sub_size, user_idnr);
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR,
 		      "%s,%s: error subtracting [%llu] from quotum "
@@ -298,11 +301,11 @@
 int db_check_quotum_used(u64_t user_idnr, u64_t msg_size)
 {
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT 1 FROM dbmail_users "
+		 "SELECT 1 FROM %susers "
 		 "WHERE user_idnr = '%llu' "
 		 "AND (maxmail_size > 0) "
 		 "AND (curmail_size + '%llu' > maxmail_size)",
-		 user_idnr, msg_size);
+		 DBPFX, user_idnr, msg_size);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: error checking quotum for "
@@ -340,17 +343,18 @@
 	 */
 	snprintf(query, DEF_QUERYSIZE,
 		 "SELECT usr.user_idnr, sum(pm.messagesize), usr.curmail_size "
-		 "FROM dbmail_users usr LEFT JOIN dbmail_mailboxes mbx "
+		 "FROM %susers usr LEFT JOIN %smailboxes mbx "
 		 "ON mbx.owner_idnr = usr.user_idnr "
-		 "LEFT JOIN dbmail_messages msg "
+		 "LEFT JOIN %smessages msg "
 		 "ON msg.mailbox_idnr = mbx.mailbox_idnr "
-		 "LEFT JOIN dbmail_physmessage pm "
+		 "LEFT JOIN %sphysmessage pm "
 		 "ON pm.id = msg.physmessage_id "
 		 "AND msg.status < '%d' "
 		 "GROUP BY usr.user_idnr, usr.curmail_size "
 		 "HAVING ((SUM(pm.messagesize) <> usr.curmail_size) OR "
 		 "(NOT (SUM(pm.messagesize) IS NOT NULL) "
-		 "AND usr.curmail_size <> 0))", MESSAGE_STATUS_DELETE);
+		 "AND usr.curmail_size <> 0))", DBPFX,DBPFX,
+			DBPFX,DBPFX,MESSAGE_STATUS_DELETE);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: error findng quotum used",
@@ -412,11 +416,11 @@
 	u64_t quotum = 0;
 
 	snprintf(query, DEF_QUERYSIZE, "SELECT SUM(pm.messagesize) "
-		 "FROM dbmail_physmessage pm, dbmail_messages m, dbmail_mailboxes mb "
+		 "FROM %sphysmessage pm, %smessages m, %smailboxes mb "
 		 "WHERE m.physmessage_id = pm.id "
 		 "AND m.mailbox_idnr = mb.mailbox_idnr "
 		 "AND mb.owner_idnr = '%llu' " "AND m.status < '%d'",
-		 user_idnr, MESSAGE_STATUS_DELETE);
+		 DBPFX,DBPFX,DBPFX,user_idnr, MESSAGE_STATUS_DELETE);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not execute query",
@@ -452,8 +456,8 @@
 	*notify_address = NULL;
 
 	snprintf(query, DEF_QUERYSIZE, "SELECT notify_address "
-		 "FROM dbmail_auto_notifications WHERE user_idnr = %llu",
-		 user_idnr);
+		 "FROM %sauto_notifications WHERE user_idnr = %llu",
+		 DBPFX,user_idnr);
 
 	if (db_query(query) == -1) {
 		/* query failed */
@@ -480,8 +484,8 @@
 	*reply_body = NULL;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT reply_body FROM dbmail_auto_replies "
-		 "WHERE user_idnr = %llu", user_idnr);
+		 "SELECT reply_body FROM %sauto_replies "
+		 "WHERE user_idnr = %llu", DBPFX,user_idnr);
 	if (db_query(query) == -1) {
 		/* query failed */
 		trace(TRACE_ERROR, "%s,%s: query failed", __FILE__,
@@ -505,8 +509,8 @@
 	u64_t mailbox_idnr;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT mailbox_idnr FROM dbmail_messages "
-		 "WHERE message_idnr = '%llu'", message_idnr);
+		 "SELECT mailbox_idnr FROM %smessages "
+		 "WHERE message_idnr = '%llu'", DBPFX,message_idnr);
 
 	if (db_query(query) == -1) {
 		/* query failed */
@@ -533,9 +537,10 @@
 	u64_t user_idnr;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT dbmail_mailboxes.owner_idnr FROM dbmail_mailboxes, dbmail_messages "
-		 "WHERE dbmail_mailboxes.mailbox_idnr = dbmail_messages.mailbox_idnr "
-		 "AND dbmail_messages.message_idnr = '%llu'", message_idnr);
+		 "SELECT %smailboxes.owner_idnr FROM %smailboxes, %smessages "
+		 "WHERE %smailboxes.mailbox_idnr = %smessages.mailbox_idnr "
+		 "AND %smessages.message_idnr = '%llu'", DBPFX,DBPFX,DBPFX,
+		DBPFX,DBPFX,DBPFX,message_idnr);
 	if (db_query(query) == -1) {
 		/* query failed */
 		trace(TRACE_ERROR, "%s,%s: query failed", __FILE__,
@@ -565,8 +570,8 @@
 	to_date_str = char2date_str(internal_date);
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "INSERT INTO dbmail_physmessage (messagesize, internal_date) "
-		 "VALUES ('0', %s)", to_date_str);
+		 "INSERT INTO %sphysmessage (messagesize, internal_date) "
+		 "VALUES ('0', %s)", DBPFX,to_date_str);
 	my_free(to_date_str);
 
 	if (db_query(query) == -1) {
@@ -587,8 +592,8 @@
 	*physmessage_id = 0;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "INSERT INTO dbmail_physmessage (messagesize, internal_date) "
-		 "VALUES ('0', CURRENT_TIMESTAMP)");
+		 "INSERT INTO %sphysmessage (messagesize, internal_date) "
+		 "VALUES ('0', CURRENT_TIMESTAMP)", DBPFX);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: query failed", __FILE__,
@@ -649,10 +654,10 @@
 
 	/* now insert an entry into the messages table */
 	snprintf(query, DEF_QUERYSIZE, "INSERT INTO "
-		 "dbmail_messages(mailbox_idnr, physmessage_id, unique_id,"
+		 "%smessages(mailbox_idnr, physmessage_id, unique_id,"
 		 "recent_flag, status) "
 		 "VALUES ('%llu', '%llu', '%s', '1', '%d')",
-		 mailboxid, physmessage_id, unique_id ? unique_id : "",
+		 DBPFX, mailboxid, physmessage_id, unique_id ? unique_id : "",
 		 MESSAGE_STATUS_INSERT);
 	if (db_query(query) == -1) {
 		trace(TRACE_STOP, "%s,%s: query failed", __FILE__,
@@ -666,8 +671,8 @@
 int db_message_set_unique_id(u64_t message_idnr, const char *unique_id)
 {
 	snprintf(query, DEF_QUERYSIZE,
-		 "UPDATE dbmail_messages SET unique_id = '%s', status = '%d' "
-		 "WHERE message_idnr = '%llu'", unique_id, MESSAGE_STATUS_NEW,
+		 "UPDATE %smessages SET unique_id = '%s', status = '%d' "
+		 "WHERE message_idnr = '%llu'", DBPFX, unique_id, MESSAGE_STATUS_NEW,
 		 message_idnr);
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: setting unique id for message "
@@ -683,9 +688,9 @@
 			     u64_t rfc_size)
 {
 	snprintf(query, DEF_QUERYSIZE,
-		 "UPDATE dbmail_physmessage SET "
+		 "UPDATE %sphysmessage SET "
 		 "messagesize = '%llu', rfcsize = '%llu' "
-		 "WHERE id = '%llu'", message_size, rfc_size, physmessage_id);
+		 "WHERE id = '%llu'", DBPFX, message_size, rfc_size, physmessage_id);
 
 	if (db_query(query) < 0) {
 		trace(TRACE_ERROR, "%s,%s: error setting messagesize and "
@@ -772,8 +777,8 @@
 	memset(escaped_query, '\0', maxesclen);
 	startlen =
 	    snprintf(escaped_query, maxesclen,
-		     "INSERT INTO dbmail_messageblks"
-		     "(messageblk,blocksize, physmessage_id) VALUES ('");
+		     "INSERT INTO %smessageblks"
+		     "(messageblk,blocksize, physmessage_id) VALUES ('",DBPFX);
 	
 	/* escape & add data */
 	esclen =
@@ -834,7 +839,7 @@
 	u64_t id = 0;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT idnr FROM dbmail_pbsp WHERE ipnumber = '%s'", ip);
+		 "SELECT idnr FROM %spbsp WHERE ipnumber = '%s'", DBPFX, ip);
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not access ip-log table "
 		      "(pop/imap-before-smtp): %s", __FILE__, __func__,
@@ -848,9 +853,9 @@
 
 	if (id) {
 		/* this IP is already in the table, update the 'since' field */
-		snprintf(query, DEF_QUERYSIZE, "UPDATE dbmail_pbsp "
+		snprintf(query, DEF_QUERYSIZE, "UPDATE %spbsp "
 			 "SET since = CURRENT_TIMESTAMP WHERE idnr='%llu'",
-			 id);
+			 DBPFX, id);
 
 		if (db_query(query) == -1) {
 			trace(TRACE_ERROR,
@@ -862,8 +867,8 @@
 	} else {
 		/* IP not in table, insert row */
 		snprintf(query, DEF_QUERYSIZE,
-			 "INSERT INTO dbmail_pbsp (since, ipnumber) "
-			 "VALUES (CURRENT_TIMESTAMP, '%s')", ip);
+			 "INSERT INTO %spbsp (since, ipnumber) "
+			 "VALUES (CURRENT_TIMESTAMP, '%s')", DBPFX, ip);
 		if (db_query(query) == -1) {
 			trace(TRACE_ERROR,
 			      "%s,%s: could not log IP number to dbase "
@@ -882,7 +887,7 @@
 int db_cleanup_iplog(const char *lasttokeep)
 {
 	snprintf(query, DEF_QUERYSIZE,
-		 "DELETE FROM dbmail_pbsp WHERE since < '%s'", lasttokeep);
+		 "DELETE FROM %spbsp WHERE since < '%s'", DBPFX, lasttokeep);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s:%s: error executing query",
@@ -905,8 +910,8 @@
 	int result = 0;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT mailbox_idnr FROM dbmail_mailboxes WHERE owner_idnr='%llu'",
-		 user_idnr);
+		 "SELECT mailbox_idnr FROM %smailboxes WHERE owner_idnr='%llu'",
+		 DBPFX, user_idnr);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: error executing query",
@@ -963,9 +968,9 @@
 	 * associated physmessage in the physmessage table.
 	 */
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT mb.messageblk_idnr FROM dbmail_messageblks mb "
-		 "LEFT JOIN dbmail_physmessage pm ON "
-		 "mb.physmessage_id = pm.id " "WHERE pm.id IS NULL");
+		 "SELECT mb.messageblk_idnr FROM %smessageblks mb "
+		 "LEFT JOIN %sphysmessage pm ON "
+		 "mb.physmessage_id = pm.id " "WHERE pm.id IS NULL",DBPFX,DBPFX);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: Could not execute query",
@@ -1014,10 +1019,10 @@
 	list_init(lost_list);
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT msg.message_idnr FROM dbmail_messages msg "
-		 "LEFT JOIN dbmail_mailboxes mbx ON "
+		 "SELECT msg.message_idnr FROM %smessages msg "
+		 "LEFT JOIN %smailboxes mbx ON "
 		 "msg.mailbox_idnr=mbx.mailbox_idnr "
-		 "WHERE mbx.mailbox_idnr IS NULL");
+		 "WHERE mbx.mailbox_idnr IS NULL",DBPFX,DBPFX);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not execute query",
@@ -1065,10 +1070,10 @@
 	list_init(lost_list);
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT mbx.mailbox_idnr FROM dbmail_mailboxes mbx "
-		 "LEFT JOIN dbmail_users usr ON "
+		 "SELECT mbx.mailbox_idnr FROM %smailboxes mbx "
+		 "LEFT JOIN %susers usr ON "
 		 "mbx.owner_idnr=usr.user_idnr "
-		 "WHERE usr.user_idnr is NULL");
+		 "WHERE usr.user_idnr is NULL",DBPFX,DBPFX);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not execute query",
@@ -1116,10 +1121,10 @@
 	list_init(lost_list);
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT pm.id FROM dbmail_physmessage pm "
-		 "LEFT JOIN dbmail_messageblks mbk ON "
+		 "SELECT pm.id FROM %sphysmessage pm "
+		 "LEFT JOIN %smessageblks mbk ON "
 		 "pm.id = mbk.physmessage_id "
-		 "WHERE mbk.physmessage_id is NULL");
+		 "WHERE mbk.physmessage_id is NULL",DBPFX,DBPFX);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not execute query",
@@ -1168,9 +1173,9 @@
 	list_init(lost_list);
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT msg.message_idnr FROM dbmail_messages msg "
-		 "LEFT JOIN dbmail_physmessage pm ON "
-		 "msg.physmessage_id = pm.id " "WHERE pm.id is NULL");
+		 "SELECT msg.message_idnr FROM %smessages msg "
+		 "LEFT JOIN %sphysmessage pm ON "
+		 "msg.physmessage_id = pm.id " "WHERE pm.id is NULL",DBPFX,DBPFX);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not execute query",
@@ -1214,23 +1219,23 @@
 	/** FIXME: We should check that, if a message is set from
 	 * a status < MESSAGE_STATUS_DELETE 
 	 * to >= MESSAGE_STATUS_DELETE, the curmail_size is also changed */
-	snprintf(query, DEF_QUERYSIZE, "UPDATE dbmail_messages SET status = %d "
-		 "WHERE message_idnr = '%llu'", status, message_idnr);
+	snprintf(query, DEF_QUERYSIZE, "UPDATE %smessages SET status = %d "
+		 "WHERE message_idnr = '%llu'",DBPFX, status, message_idnr);
 	return db_query(query);
 }
 
 int db_delete_messageblk(u64_t messageblk_idnr)
 {
 	snprintf(query, DEF_QUERYSIZE,
-		 "DELETE FROM dbmail_messageblks "
-		 "WHERE messageblk_idnr = '%llu'", messageblk_idnr);
+		 "DELETE FROM %smessageblks "
+		 "WHERE messageblk_idnr = '%llu'",DBPFX, messageblk_idnr);
 	return db_query(query);
 }
 
 int db_delete_physmessage(u64_t physmessage_id)
 {
 	snprintf(query, DEF_QUERYSIZE,
-		 "DELETE FROM dbmail_physmessage WHERE id = '%llu'",
+		 "DELETE FROM %sphysmessage WHERE id = '%llu'",DBPFX,
 		 physmessage_id);
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not execute query",
@@ -1241,7 +1246,7 @@
 	/* if foreign keys do their work (not with MySQL ISAM tables :( )
 	   the next query would not be necessary */
 	snprintf(query, DEF_QUERYSIZE,
-		 "DELETE FROM dbmail_messageblks WHERE physmessage_id = '%llu'",
+		 "DELETE FROM %smessageblks WHERE physmessage_id = '%llu'",DBPFX,
 		 physmessage_id);
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not execute query. There "
@@ -1267,7 +1272,7 @@
 
 	/* now delete the message from the message table */
 	snprintf(query, DEF_QUERYSIZE,
-		 "DELETE FROM dbmail_messages WHERE message_idnr = '%llu'",
+		 "DELETE FROM %smessages WHERE message_idnr = '%llu'",DBPFX,
 		 message_idnr);
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not execute query",
@@ -1278,8 +1283,8 @@
 	/* find if there are other messages pointing to the same
 	   physmessage entry */
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT message_idnr FROM dbmail_messages "
-		 "WHERE physmessage_id = '%llu'", physmessage_id);
+		 "SELECT message_idnr FROM %smessages "
+		 "WHERE physmessage_id = '%llu'",DBPFX, physmessage_id);
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not execute query",
 		      __FILE__, __func__);
@@ -1341,7 +1346,7 @@
 	if (!only_empty) {
 		/* delete mailbox */
 		snprintf(query, DEF_QUERYSIZE,
-			 "DELETE FROM dbmail_mailboxes WHERE mailbox_idnr = '%llu'",
+			 "DELETE FROM %smailboxes WHERE mailbox_idnr = '%llu'",DBPFX,
 			 mailbox_idnr);
 
 		if (db_query(query) == -1) {
@@ -1355,8 +1360,8 @@
 	/* we want to delete all messages from the mailbox. So we
 	 * need to find all messages in the box */
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT message_idnr FROM dbmail_messages "
-		 "WHERE mailbox_idnr = '%llu'", mailbox_idnr);
+		 "SELECT message_idnr FROM %smessages "
+		 "WHERE mailbox_idnr = '%llu'",DBPFX, mailbox_idnr);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR,
@@ -1424,8 +1429,8 @@
 
 	/* first find the physmessage_id */
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT physmessage_id FROM dbmail_messages "
-		 "WHERE message_idnr = '%llu'", message_idnr);
+		 "SELECT physmessage_id FROM %smessages "
+		 "WHERE message_idnr = '%llu'",DBPFX, message_idnr);
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: error executing query",
 		      __FILE__, __func__);
@@ -1442,9 +1447,9 @@
 	}
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT messageblk FROM dbmail_messageblks "
+		 "SELECT messageblk FROM %smessageblks "
 		 "WHERE physmessage_id='%llu' "
-		 "ORDER BY messageblk_idnr ASC", physmessage_id);
+		 "ORDER BY messageblk_idnr ASC",DBPFX, physmessage_id);
 	trace(TRACE_DEBUG, "%s,%s: executing query [%s]",
 	      __FILE__, __func__, query);
 
@@ -1588,11 +1593,11 @@
 	 * the unique_id should not be empty, this could mean that the message is still being delivered */
 	snprintf(query, DEF_QUERYSIZE,
 		 "SELECT pm.messagesize, msg.message_idnr, msg.status, "
-		 "msg.unique_id FROM dbmail_messages msg, dbmail_physmessage pm "
+		 "msg.unique_id FROM %smessages msg, %sphysmessage pm "
 		 "WHERE msg.mailbox_idnr = '%llu' "
 		 "AND msg.status < '%d' "
 		 "AND msg.physmessage_id = pm.id "
-		 "AND unique_id != '' order by status ASC",
+		 "AND unique_id != '' order by status ASC",DBPFX,DBPFX,
 		 inbox_mailbox_idnr, MESSAGE_STATUS_DELETE);
 
 	if (db_query(query) == -1) {
@@ -1686,8 +1691,8 @@
 
 			/* yes they need an update, do the query */
 			snprintf(query, DEF_QUERYSIZE,
-				 "UPDATE dbmail_messages set status='%d' WHERE "
-				 "message_idnr='%llu' AND status < '%d'",
+				 "UPDATE %smessages set status='%d' WHERE "
+				 "message_idnr='%llu' AND status < '%d'",DBPFX,
 				 ((struct message *)
 				  tmpelement->data)->virtual_messagestatus,
 				 ((struct message *) tmpelement->data)->
@@ -1729,7 +1734,7 @@
 	*affected_rows = 0;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "UPDATE dbmail_messages SET status = '%d' WHERE status = '%d'",
+		 "UPDATE %smessages SET status = '%d' WHERE status = '%d'",DBPFX,
 		 MESSAGE_STATUS_PURGE, MESSAGE_STATUS_DELETE);
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: Could not execute query",
@@ -1751,7 +1756,7 @@
 
 	/* first we're deleting all the messageblks */
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT message_idnr FROM dbmail_messages WHERE status='%d'",
+		 "SELECT message_idnr FROM %smessages WHERE status='%d'",DBPFX,
 		 MESSAGE_STATUS_PURGE);
 	trace(TRACE_DEBUG, "%s,%s: executing query [%s]",
 	      __FILE__, __func__, query);
@@ -1838,9 +1843,9 @@
 	 * this also means that the status will be set to '001'
 	 */
 	snprintf(query, DEF_QUERYSIZE,
-		 "INSERT INTO dbmail_messages "
+		 "INSERT INTO %smessages "
 		 "(mailbox_idnr, physmessage_id, unique_id, status,"
-		 "recent_flag) VALUES ('%llu', '%llu', '', '%d', '1')",
+		 "recent_flag) VALUES ('%llu', '%llu', '', '%d', '1')",DBPFX,
 		 mailbox_idnr, physmessage_id, MESSAGE_STATUS_SEEN);
 
 	if (db_query(query) == -1) {
@@ -2060,8 +2065,8 @@
 	convert_inbox_to_uppercase(local_name);
 	
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT mailbox_idnr FROM dbmail_mailboxes "
-		 "WHERE name='%s' AND owner_idnr='%llu'", local_name,
+		 "SELECT mailbox_idnr FROM %smailboxes "
+		 "WHERE name='%s' AND owner_idnr='%llu'",DBPFX, local_name,
 		 owner_idnr);
 	free(local_name); /* allocated with strdup(), so uses normal free() */
 	if (db_query(query) == -1) {
@@ -2107,8 +2112,8 @@
 	if (only_subscribed)
 		snprintf(query, DEF_QUERYSIZE,
 			 "SELECT mbx.name, mbx.mailbox_idnr, mbx.owner_idnr "
-			 "FROM dbmail_mailboxes mbx, dbmail_acl acl, "
-			 "dbmail_subscription sub, dbmail_users usr "
+			 "FROM %smailboxes mbx, %sacl acl, "
+			 "%ssubscription sub, %susers usr "
 			 "WHERE (sub.user_id = '%llu' AND "
 			 "sub.mailbox_id = mbx.mailbox_idnr) AND "
 			 "(mbx.owner_idnr = '%llu' OR "
@@ -2117,21 +2122,21 @@
 			 "usr.userid = '%s')) AND "
 			 "mbx.mailbox_idnr = acl.mailbox_id AND "
 			 "acl.lookup_flag = '1')) "
-			 "GROUP BY mbx.name, mbx.mailbox_idnr, mbx.owner_idnr",
+			 "GROUP BY mbx.name, mbx.mailbox_idnr, mbx.owner_idnr",DBPFX,DBPFX,DBPFX,DBPFX,
 			 user_idnr, user_idnr, user_idnr, 
 			 DBMAIL_ACL_ANYONE_USER);
 	else
 		snprintf(query, DEF_QUERYSIZE,
 			 "SELECT mbx.name, mbx.mailbox_idnr, mbx.owner_idnr "
-			 "FROM dbmail_mailboxes mbx, dbmail_acl acl, "
-			 "dbmail_users usr "
+			 "FROM %smailboxes mbx, %sacl acl, "
+			 "%susers usr "
 			 "WHERE (mbx.owner_idnr = '%llu') OR "
 			 "((acl.user_id = '%llu' OR "
 			 "(acl.user_id = usr.user_idnr AND "
 			 "usr.userid = '%s')) "
 			 "AND mbx.mailbox_idnr = acl.mailbox_id AND "
 			 "acl.lookup_flag = '1') "
-			 "GROUP BY mbx.name, mbx.mailbox_idnr, mbx.owner_idnr",
+			 "GROUP BY mbx.name, mbx.mailbox_idnr, mbx.owner_idnr",DBPFX,DBPFX,DBPFX,
 			 user_idnr, user_idnr, DBMAIL_ACL_ANYONE_USER);
 
 	if (db_query(query) == -1) {
@@ -2288,7 +2293,7 @@
 		 "flagged_flag,"
 		 "recent_flag,"
 		 "draft_flag "
-		 "FROM dbmail_mailboxes WHERE mailbox_idnr = '%llu'", mb->uid);
+		 "FROM %smailboxes WHERE mailbox_idnr = '%llu'",DBPFX, mb->uid);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not select mailbox\n",
@@ -2324,9 +2329,9 @@
 	/* select messages */
 	snprintf(query, DEF_QUERYSIZE,
 		 "SELECT message_idnr, seen_flag, recent_flag "
-		 "FROM dbmail_messages WHERE mailbox_idnr = '%llu' "
+		 "FROM %smessages WHERE mailbox_idnr = '%llu' "
 		 "AND status < '%d' AND unique_id != '' "
-		 "ORDER BY message_idnr ASC", mb->uid, MESSAGE_STATUS_DELETE);
+		 "ORDER BY message_idnr ASC",DBPFX, mb->uid, MESSAGE_STATUS_DELETE);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not retrieve messages",
@@ -2360,8 +2365,8 @@
 	 * able to restore them 
 	 */
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT MAX(message_idnr) FROM dbmail_messages "
-		 "WHERE unique_id != ''");
+		 "SELECT MAX(message_idnr) FROM %smessages "
+		 "WHERE unique_id != ''",DBPFX);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR,
@@ -2394,10 +2399,10 @@
 		return -1;
 	}
 	snprintf(query, DEF_QUERYSIZE,
-		 "INSERT INTO dbmail_mailboxes (name, owner_idnr,"
+		 "INSERT INTO %smailboxes (name, owner_idnr,"
 		 "seen_flag, answered_flag, deleted_flag, flagged_flag, "
 		 "recent_flag, draft_flag, permission)"
-		 " VALUES ('%s', '%llu', 1, 1, 1, 1, 1, 1, 2)",
+		 " VALUES ('%s', '%llu', 1, 1, 1, 1, 1, 1, 2)",DBPFX,
 		 simple_name, owner_idnr);
 
 	if (db_query(query) == -1) {
@@ -2449,8 +2454,8 @@
 
 	/* retrieve the name of this mailbox */
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT name FROM dbmail_mailboxes WHERE "
-		 "mailbox_idnr = '%llu' AND owner_idnr = '%llu'",
+		 "SELECT name FROM %smailboxes WHERE "
+		 "mailbox_idnr = '%llu' AND owner_idnr = '%llu'",DBPFX,
 		 mailbox_idnr, user_idnr);
 
 	if (db_query(query) == -1) {
@@ -2476,15 +2481,15 @@
 	db_free_result();
 	if (mailbox_name) {
 		snprintf(query, DEF_QUERYSIZE,
-			 "SELECT mailbox_idnr FROM dbmail_mailboxes WHERE name LIKE '%s/%s'"
-			 " AND owner_idnr = '%llu'",
+			 "SELECT mailbox_idnr FROM %smailboxes WHERE name LIKE '%s/%s'"
+			 " AND owner_idnr = '%llu'",DBPFX,
 			 mailbox_name, filter, user_idnr);
 		free(mailbox_name); /* alloc'd with strdup so uses free() */
 	}
 	else
 		snprintf(query, DEF_QUERYSIZE,
-			 "SELECT mailbox_idnr FROM dbmail_mailboxes WHERE name LIKE '%s'"
-			 " AND owner_idnr = '%llu'", filter, user_idnr);
+			 "SELECT mailbox_idnr FROM %smailboxes WHERE name LIKE '%s'"
+			 " AND owner_idnr = '%llu'",DBPFX, filter, user_idnr);
 	
 	/* now find the children */
 	if (db_query(query) == -1) {
@@ -2532,7 +2537,7 @@
 	long not_selectable;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT no_select FROM dbmail_mailboxes WHERE mailbox_idnr = '%llu'",
+		 "SELECT no_select FROM %smailboxes WHERE mailbox_idnr = '%llu'",DBPFX,
 		 mailbox_idnr);
 
 	if (db_query(query) == -1) {
@@ -2568,7 +2573,7 @@
 	long no_inferiors;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT no_inferiors FROM dbmail_mailboxes WHERE mailbox_idnr = '%llu'",
+		 "SELECT no_inferiors FROM %smailboxes WHERE mailbox_idnr = '%llu'",DBPFX,
 		 mailbox_idnr);
 
 	if (db_query(query) == -1) {
@@ -2599,7 +2604,7 @@
 int db_setselectable(u64_t mailbox_idnr, int select_value)
 {
 	snprintf(query, DEF_QUERYSIZE,
-		 "UPDATE dbmail_mailboxes SET no_select = %d WHERE mailbox_idnr = '%llu'",
+		 "UPDATE %smailboxes SET no_select = %d WHERE mailbox_idnr = '%llu'",DBPFX,
 		 (!select_value), mailbox_idnr);
 
 	if (db_query(query) == -1) {
@@ -2619,20 +2624,20 @@
 
 	if (only_deleted)
 		snprintf(query, DEF_QUERYSIZE,
-			 "SELECT sum(pm.messagesize) FROM dbmail_messages msg, "
-			 "dbmail_physmessage pm "
+			 "SELECT sum(pm.messagesize) FROM %smessages msg, "
+			 "%sphysmessage pm "
 			 "WHERE msg.physmessage_id = pm.id "
 			 "AND msg.mailbox_idnr = '%llu' "
 			 "AND msg.status < '%d' "
-			 "AND msg.deleted_flag = '1'", mailbox_idnr,
+			 "AND msg.deleted_flag = '1'",DBPFX,DBPFX, mailbox_idnr,
 			 MESSAGE_STATUS_DELETE);
 	else
 		snprintf(query, DEF_QUERYSIZE,
-			 "SELECT sum(pm.messagesize) FROM dbmail_messages msg, "
-			 "dbmail_physmessage pm "
+			 "SELECT sum(pm.messagesize) FROM %smessages msg, "
+			 "%sphysmessage pm "
 			 "WHERE msg.physmessage_id = pm.id "
 			 "AND msg.mailbox_idnr = '%llu' "
-			 "AND msg.status < '%d'", mailbox_idnr,
+			 "AND msg.status < '%d'",DBPFX,DBPFX, mailbox_idnr,
 			 MESSAGE_STATUS_DELETE);
 
 	if (db_query(query) == -1) {
@@ -2664,7 +2669,7 @@
 	/* update messages belonging to this mailbox: mark as deleted (status 
 	   MESSAGE_STATUS_PURGE) */
 	snprintf(query, DEF_QUERYSIZE,
-		 "UPDATE dbmail_messages SET status='%d' WHERE mailbox_idnr = '%llu'",
+		 "UPDATE %smessages SET status='%d' WHERE mailbox_idnr = '%llu'",DBPFX,
 		 MESSAGE_STATUS_PURGE, mailbox_idnr);
 
 	if (db_query(query) == -1) {
@@ -2688,8 +2693,8 @@
 int db_movemsg(u64_t mailbox_to, u64_t mailbox_from)
 {
 	snprintf(query, DEF_QUERYSIZE,
-		 "UPDATE dbmail_messages SET mailbox_idnr='%llu' WHERE"
-		 " mailbox_idnr = '%llu'", mailbox_to, mailbox_from);
+		 "UPDATE %smessages SET mailbox_idnr='%llu' WHERE"
+		 " mailbox_idnr = '%llu'",DBPFX, mailbox_to, mailbox_from);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR,
@@ -2707,9 +2712,9 @@
 	assert(message_size != NULL);
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT pm.messagesize FROM dbmail_physmessage pm, dbmail_messages msg "
+		 "SELECT pm.messagesize FROM %sphysmessage pm, %smessages msg "
 		 "WHERE pm.id = msg.physmessage_id "
-		 "AND message_idnr = '%llu'", message_idnr);
+		 "AND message_idnr = '%llu'",DBPFX,DBPFX, message_idnr);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR,
@@ -2772,14 +2777,14 @@
 
 	/* Copy the message table entry of the message. */
 	snprintf(query, DEF_QUERYSIZE,
-		 "INSERT INTO dbmail_messages (mailbox_idnr,"
+		 "INSERT INTO %smessages (mailbox_idnr,"
 		 "physmessage_id, seen_flag, answered_flag, deleted_flag, "
 		 "flagged_flag, recent_flag, draft_flag, unique_id, status) "
 		 "SELECT '%llu', "
 		 "physmessage_id, seen_flag, answered_flag, deleted_flag, "
 		 "flagged_flag, recent_flag, draft_flag, '%s', status "
-		 "FROM dbmail_messages WHERE message_idnr = '%llu'",
-		 mailbox_to, unique_id, msg_idnr);
+		 "FROM %smessages WHERE message_idnr = '%llu'",DBPFX,
+		 mailbox_to, unique_id,DBPFX, msg_idnr);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: error copying message",
@@ -2817,7 +2822,7 @@
 	}
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT name FROM dbmail_mailboxes WHERE mailbox_idnr = '%llu'",
+		 "SELECT name FROM %smailboxes WHERE mailbox_idnr = '%llu'",DBPFX,
 		 mailbox_idnr);
 
 	if (db_query(query) == -1) {
@@ -2862,8 +2867,8 @@
 int db_setmailboxname(u64_t mailbox_idnr, const char *name)
 {
 	snprintf(query, DEF_QUERYSIZE,
-		 "UPDATE dbmail_mailboxes SET name = '%s' "
-		 "WHERE mailbox_idnr = '%llu'", name, mailbox_idnr);
+		 "UPDATE %smailboxes SET name = '%s' "
+		 "WHERE mailbox_idnr = '%llu'",DBPFX, name, mailbox_idnr);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not set name", __FILE__,
@@ -2892,10 +2897,10 @@
 
 		/* first select msg UIDs */
 		snprintf(query, DEF_QUERYSIZE,
-			 "SELECT message_idnr FROM dbmail_messages WHERE "
+			 "SELECT message_idnr FROM %smessages WHERE "
 			 "mailbox_idnr = '%llu' AND deleted_flag='1' "
 			 "AND status < '%d' "
-			 "ORDER BY message_idnr DESC", mailbox_idnr,
+			 "ORDER BY message_idnr DESC",DBPFX, mailbox_idnr,
 			 MESSAGE_STATUS_DELETE);
 
 		if (db_query(query) == -1) {
@@ -2926,9 +2931,9 @@
 	/* update messages belonging to this mailbox: 
 	 * mark as expunged (status MESSAGE_STATUS_DELETE) */
 	snprintf(query, DEF_QUERYSIZE,
-		 "UPDATE dbmail_messages SET status='%d' "
+		 "UPDATE %smessages SET status='%d' "
 		 "WHERE mailbox_idnr = '%llu' "
-		 "AND deleted_flag='1' AND status < '%d'", 
+		 "AND deleted_flag='1' AND status < '%d'",DBPFX, 
 		 MESSAGE_STATUS_DELETE, mailbox_idnr,
 		 MESSAGE_STATUS_DELETE);
 
@@ -2961,9 +2966,9 @@
 	u64_t id;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT MIN(message_idnr) FROM dbmail_messages "
+		 "SELECT MIN(message_idnr) FROM %smessages "
 		 "WHERE mailbox_idnr = '%llu' "
-		 "AND status < '%d' AND seen_flag = '0' AND unique_id != ''",
+		 "AND status < '%d' AND seen_flag = '0' AND unique_id != ''",DBPFX,
 		 mailbox_idnr, MESSAGE_STATUS_DELETE);
 
 	if (db_query(query) == -1) {
@@ -2981,9 +2986,9 @@
 int db_subscribe(u64_t mailbox_idnr, u64_t user_idnr)
 {
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT * FROM dbmail_subscription "
+		 "SELECT * FROM %ssubscription "
 		 "WHERE mailbox_id = '%llu' "
-		 "AND user_id = '%llu'", mailbox_idnr, user_idnr);
+		 "AND user_id = '%llu'",DBPFX, mailbox_idnr, user_idnr);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not verify subscription",
@@ -3001,8 +3006,8 @@
 	db_free_result();
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "INSERT INTO dbmail_subscription (user_id, mailbox_id) "
-		 "VALUES ('%llu', '%llu')", user_idnr, mailbox_idnr);
+		 "INSERT INTO %ssubscription (user_id, mailbox_id) "
+		 "VALUES ('%llu', '%llu')",DBPFX, user_idnr, mailbox_idnr);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not insert subscription",
@@ -3016,8 +3021,8 @@
 int db_unsubscribe(u64_t mailbox_idnr, u64_t user_idnr)
 {
 	snprintf(query, DEF_QUERYSIZE,
-		 "DELETE FROM dbmail_subscription "
-		 "WHERE user_id = '%llu' AND mailbox_id = '%llu'",
+		 "DELETE FROM %ssubscription "
+		 "WHERE user_id = '%llu' AND mailbox_id = '%llu'",DBPFX,
 		 user_idnr, mailbox_idnr);
 
 	if (db_query(query) == -1) {
@@ -3052,10 +3057,10 @@
 		return 0;	/* non-existent flag is not set */
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT %s FROM dbmail_messages "
+		 "SELECT %s FROM %smessages "
 		 "WHERE message_idnr = '%llu' AND status < '%d' "
 		 "AND unique_id != '' "
-		 "AND mailbox_idnr = '%llu'",
+		 "AND mailbox_idnr = '%llu'",DBPFX,
 		 the_flag_name, msg_idnr, MESSAGE_STATUS_DELETE, mailbox_idnr);
 
 	if (db_query(query) == -1) {
@@ -3078,10 +3083,10 @@
 
 	snprintf(query, DEF_QUERYSIZE,
 		 "SELECT seen_flag, answered_flag, deleted_flag, "
-		 "flagged_flag, draft_flag, recent_flag FROM dbmail_messages "
+		 "flagged_flag, draft_flag, recent_flag FROM %smessages "
 		 "WHERE message_idnr = '%llu' AND status < '%d' "
 		 "AND unique_id != '' "
-		 "AND mailbox_idnr = '%llu'", msg_idnr, MESSAGE_STATUS_DELETE,
+		 "AND mailbox_idnr = '%llu'",DBPFX, msg_idnr, MESSAGE_STATUS_DELETE,
 		 mailbox_idnr);
 
 	if (db_query(query) == -1) {
@@ -3123,7 +3128,7 @@
 	size_t placed = 0;
 	size_t left;
 
-	snprintf(query, DEF_QUERYSIZE, "UPDATE dbmail_messages SET ");
+	snprintf(query, DEF_QUERYSIZE, "UPDATE %smessages SET ",DBPFX);
 
 	for (i = 0; i < IMAP_NFLAGS; i++) {
 		left = DEF_QUERYSIZE - strlen(query);
@@ -3185,10 +3190,10 @@
 
 	to_char_str = date2char_str("pm.internal_date");
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT %s FROM dbmail_physmessage pm, dbmail_messages msg "
+		 "SELECT %s FROM %sphysmessage pm, %smessages msg "
 		 "WHERE msg.mailbox_idnr = '%llu' "
 		 "AND msg.message_idnr = '%llu' AND msg.unique_id!='' "
-		 "AND pm.id = msg.physmessage_id",
+		 "AND pm.id = msg.physmessage_id",DBPFX,DBPFX,
 		 to_char_str, mailbox_idnr, msg_idnr);
 	my_free(to_char_str);
 
@@ -3217,9 +3222,9 @@
 	u64_t physmessage_id = 0;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT physmessage_id FROM dbmail_messages "
+		 "SELECT physmessage_id FROM %smessages "
 		 "WHERE message_idnr = '%llu' "
-		 "AND mailbox_idnr = '%llu'", msg_idnr, mailbox_idnr);
+		 "AND mailbox_idnr = '%llu'",DBPFX, msg_idnr, mailbox_idnr);
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR,
 		      "%s,%s: could not get physmessage_id for "
@@ -3236,8 +3241,8 @@
 	physmessage_id = db_get_result_u64(0, 0);
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "UPDATE dbmail_physmessage SET rfcsize = '%llu' "
-		 "WHERE id = '%llu'", rfcsize, physmessage_id);
+		 "UPDATE %sphysmessage SET rfcsize = '%llu' "
+		 "WHERE id = '%llu'",DBPFX, rfcsize, physmessage_id);
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not update  "
 		      "message [%llu]", __FILE__, __func__, msg_idnr);
@@ -3253,12 +3258,12 @@
 	*rfc_size = 0;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT pm.rfcsize FROM dbmail_physmessage pm, dbmail_messages msg "
+		 "SELECT pm.rfcsize FROM %sphysmessage pm, %smessages msg "
 		 "WHERE pm.id = msg.physmessage_id "
 		 "AND msg.message_idnr = '%llu' "
 		 "AND msg.status< '%d' "
 		 "AND msg.unique_id != '' "
-		 "AND msg.mailbox_idnr = '%llu'", msg_idnr, MESSAGE_STATUS_DELETE,
+		 "AND msg.mailbox_idnr = '%llu'",DBPFX,DBPFX, msg_idnr, MESSAGE_STATUS_DELETE,
 		 mailbox_idnr);
 
 	if (db_query(query) == -1) {
@@ -3299,12 +3304,12 @@
 	snprintf(query, DEF_QUERYSIZE,
 		 "SELECT seen_flag, answered_flag, deleted_flag, flagged_flag, "
 		 "draft_flag, recent_flag, %s, rfcsize, message_idnr "
-		 "FROM dbmail_messages msg, dbmail_physmessage pm "
+		 "FROM %smessages msg, %sphysmessage pm "
 		 "WHERE pm.id = msg.physmessage_id "
 		 "AND message_idnr BETWEEN '%llu' AND '%llu' "
 		 "AND mailbox_idnr = '%llu' AND status < '%d' "
 		 "AND unique_id != '' "
-		 "ORDER BY message_idnr ASC",
+		 "ORDER BY message_idnr ASC",DBPFX,DBPFX,
 		 to_char_str, msg_idnr_low, msg_idnr_high, mailbox_idnr,
 		 MESSAGE_STATUS_DELETE);
 	my_free(to_char_str);
@@ -3376,10 +3381,10 @@
 
 	snprintf(query, DEF_QUERYSIZE,
 		 "SELECT messageblk "
-		 "FROM dbmail_messageblks blk, dbmail_messages msg "
+		 "FROM %smessageblks blk, %smessages msg "
 		 "WHERE blk.physmessage_id = msg.physmessage_id "
 		 "AND msg.message_idnr = '%llu' "
-		 "ORDER BY blk.messageblk_idnr ASC", msg_idnr);
+		 "ORDER BY blk.messageblk_idnr ASC",DBPFX,DBPFX, msg_idnr);
 
 	if (db_query(query) == -1) {
 		trace(TRACE_ERROR, "%s,%s: could not get message header",
@@ -3441,10 +3446,10 @@
 	int val;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT message_idnr FROM dbmail_messages "
+		 "SELECT message_idnr FROM %smessages "
 		 "WHERE message_idnr = '%llu' "
 		 "AND mailbox_idnr = '%llu' "
-		 "AND status< '%d' AND unique_id!=''", msg_idnr,
+		 "AND status< '%d' AND unique_id!=''",DBPFX, msg_idnr,
 		 mailbox_idnr, MESSAGE_STATUS_DELETE);
 
 	if (db_query(query) == -1) {
@@ -3478,10 +3483,10 @@
 		return 1;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT * FROM dbmail_acl "
+		 "SELECT * FROM %sacl "
 		 "WHERE user_id = '%llu' "
 		 "AND mailbox_id = '%llu' "
-		 "AND %s = '1'", userid, mboxid, right_flag);
+		 "AND %s = '1'",DBPFX, userid, mboxid, right_flag);
 
 	if (db_query(query) < 0) {
 		trace(TRACE_ERROR, "%s,%s: error finding acl_right",
@@ -3503,8 +3508,8 @@
 	int result;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT user_id, mailbox_id FROM dbmail_acl "
-		 "WHERE user_id = '%llu' AND mailbox_id = '%llu'",
+		 "SELECT user_id, mailbox_id FROM %sacl "
+		 "WHERE user_id = '%llu' AND mailbox_id = '%llu'",DBPFX,
 		 userid, mboxid);
 
 	if (db_query(query) < 0) {
@@ -3525,8 +3530,8 @@
 static int db_acl_create_acl(u64_t userid, u64_t mboxid)
 {
 	snprintf(query, DEF_QUERYSIZE,
-		 "INSERT INTO dbmail_acl (user_id, mailbox_id) "
-		 "VALUES ('%llu', '%llu')", userid, mboxid);
+		 "INSERT INTO %sacl (user_id, mailbox_id) "
+		 "VALUES ('%llu', '%llu')",DBPFX, userid, mboxid);
 
 	if (db_query(query) < 0) {
 		trace(TRACE_ERROR,
@@ -3578,8 +3583,8 @@
 	}
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "UPDATE dbmail_acl SET %s = '%i' "
-		 "WHERE user_id = '%llu' AND mailbox_id = '%llu'",
+		 "UPDATE %sacl SET %s = '%i' "
+		 "WHERE user_id = '%llu' AND mailbox_id = '%llu'",DBPFX,
 		 right_flag, set, userid, mboxid);
 
 	if (db_query(query) < 0) {
@@ -3599,8 +3604,8 @@
 	      "mailbox [%llu].", __FILE__, __func__, userid, mboxid);
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "DELETE FROM dbmail_acl "
-		 "WHERE user_id = '%llu' AND mailbox_id = '%llu'",
+		 "DELETE FROM %sacl "
+		 "WHERE user_id = '%llu' AND mailbox_id = '%llu'",DBPFX,
 		 userid, mboxid);
 
 	if (db_query(query) < 0) {
@@ -3622,9 +3627,10 @@
 	list_init(identifier_list);
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT dbmail_users.userid FROM dbmail_users, dbmail_acl "
-		 "WHERE dbmail_acl.mailbox_id = '%llu' "
-		 "AND dbmail_users.user_idnr = dbmail_acl.user_id", mboxid);
+		 "SELECT %susers.userid FROM %susers, %sacl "
+		 "WHERE %sacl.mailbox_id = '%llu' "
+		 "AND %susers.user_idnr = %sacl.user_id",DBPFX,DBPFX,DBPFX,
+		DBPFX,mboxid,DBPFX,DBPFX);
 
 	if (db_query(query) < 0) {
 		trace(TRACE_ERROR, "%s,%s: error getting acl identifiers "
@@ -3655,8 +3661,8 @@
 	assert(owner_id != NULL);
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT owner_idnr FROM dbmail_mailboxes "
-		 "WHERE mailbox_idnr = '%llu'", mboxid);
+		 "SELECT owner_idnr FROM %smailboxes "
+		 "WHERE mailbox_idnr = '%llu'", DBPFX, mboxid);
 
 	if (db_query(query) < 0) {
 		trace(TRACE_ERROR, "%s,%s: error finding owner of mailbox "
@@ -3677,9 +3683,9 @@
 	int result;
 
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT mailbox_idnr FROM dbmail_mailboxes "
+		 "SELECT mailbox_idnr FROM %smailboxes "
 		 "WHERE mailbox_idnr = '%llu' "
-		 "AND owner_idnr = '%llu'", mboxid, userid);
+		 "AND owner_idnr = '%llu'", DBPFX, mboxid, userid);
 
 	if (db_query(query) < 0) {
 		trace(TRACE_ERROR,
diff -urN dbmail-2.1cvs091404.orig/dbmail.conf dbmail-2.1cvs091404/dbmail.conf
--- dbmail-2.1cvs091404.orig/dbmail.conf	2004-09-09 10:11:22.000000000 -0400
+++ dbmail-2.1cvs091404/dbmail.conf	2004-09-14 14:36:19.000000000 -0400
@@ -18,6 +18,7 @@
 user=                   # user to connect as to database
 pass=                   # password for user to database
 db=                     # name of database
+table_prefix=	dbmail_		# table prefix for database
 POSTMASTER=		# postmaster's email address.
 # trace level for dbmail-util	
 TRACE_LEVEL=2      
diff -urN dbmail-2.1cvs091404.orig/dbmail.h dbmail-2.1cvs091404/dbmail.h
--- dbmail-2.1cvs091404.orig/dbmail.h	2004-07-21 05:03:25.000000000 -0400
+++ dbmail-2.1cvs091404/dbmail.h	2004-09-14 15:32:00.000000000 -0400
@@ -58,7 +58,7 @@
 #define DEFAULT_PID_DIR "/var/run/"
 #define DEFAULT_PID_EXT ".pid"
 /** default configuration file */
 
 /** username of user that is owner of all mailboxes */
 #define SHARED_MAILBOX_USERNAME "__public__"
@@ -107,6 +107,8 @@
 			/**< port number of database server */
 	field_t sock;
 		   /**< path to local unix socket (local connection) */
+	field_t pfx;
+			/**< prefix for tables e.g. dbmail_ */
 } db_param_t;
 
 /** configuration items */
diff -urN dbmail-2.1cvs091404.orig/dbmsgbuf.c dbmail-2.1cvs091404/dbmsgbuf.c
--- dbmail-2.1cvs091404.orig/dbmsgbuf.c	2004-08-06 05:09:08.000000000 -0400
+++ dbmail-2.1cvs091404/dbmsgbuf.c	2004-09-14 15:42:02.000000000 -0400
@@ -37,6 +37,9 @@
 
 #define MSGBUF_WINDOWSIZE (128ull*1024ull)
 
+extern db_param_t _db_params;
+#define DBPFX _db_params.pfx
+
 static unsigned _msgrow_idx = 0;
 static int _msg_fetch_inited = 0;
 
@@ -69,10 +72,10 @@
 	
 	snprintf(query, DEF_QUERYSIZE,
 		 "SELECT block.messageblk "
-		 "FROM dbmail_messageblks block, dbmail_messages msg "
+		 "FROM %smessageblks block, %smessages msg "
 		 "WHERE block.physmessage_id = msg.physmessage_id "
 		 "AND msg.message_idnr = '%llu' "
-		 "ORDER BY block.messageblk_idnr",
+		 "ORDER BY block.messageblk_idnr", DBPFX, DBPFX,
 		 msg_idnr);
 
 	if (db_query(query) == -1) {
@@ -356,10 +359,10 @@
 	
 	snprintf(query, DEF_QUERYSIZE,
 		 "SELECT block.messageblk "
-		 "FROM dbmail_messageblks block, dbmail_messages msg "
+		 "FROM %smessageblks block, %smessages msg "
 		 "WHERE block.physmessage_id = msg.physmessage_id "
 		 "AND msg.message_idnr = '%llu' "
-		 "ORDER BY block.messageblk_idnr",
+		 "ORDER BY block.messageblk_idnr", DBPFX, DBPFX,
 		 msg_idnr);
 
 	if (db_query(query) == -1) {
diff -urN dbmail-2.1cvs091404.orig/dbsearch.c dbmail-2.1cvs091404/dbsearch.c
--- dbmail-2.1cvs091404.orig/dbsearch.c	2004-09-14 05:15:04.000000000 -0400
+++ dbmail-2.1cvs091404/dbsearch.c	2004-09-14 15:40:43.000000000 -0400
@@ -48,6 +48,10 @@
 	"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
 };
 
+extern db_param_t _db_params;
+#define DBPFX _db_params.pfx
+
+
 /* for issuing queries to the backend */
 char query[DEF_QUERYSIZE];
 
@@ -112,25 +116,25 @@
        /** \todo this next solution (pms.%s) is really dirty. If anything,
 	   the IMAP search algorithm is dirty, and should be fixed */
 		snprintf(query, DEF_QUERYSIZE,
-			 "SELECT msg.message_idnr FROM dbmail_messages msg, dbmail_physmessage pms "
+			 "SELECT msg.message_idnr FROM %smessages msg, %sphysmessage pms "
 			 "WHERE msg.mailbox_idnr = '%llu' "
 			 "AND msg.physmessage_id = pms.id "
 			 "AND msg.status < '%d' "
 			 "AND msg.unique_id <> '' "
-			 "AND pms.%s", mb->uid, MESSAGE_STATUS_DELETE, key);
+			 "AND pms.%s", DBPFX, DBPFX, mb->uid, MESSAGE_STATUS_DELETE, key);
    	} else if ( type == IST_SORT) {
         	snprintf(query, DEF_QUERYSIZE,
-                 	"SELECT msg.message_idnr FROM dbmail_messages msg, dbmail_physmessage pms "
+                 	"SELECT msg.message_idnr FROM %smessages msg, %sphysmessage pms "
                  	"WHERE msg.mailbox_idnr = '%llu' "
                  	"AND msg.physmessage_id = pms.id "
                  	"AND msg.status < 2 "
                  	"AND msg.unique_id <> '' "
-                 	"%s", mb->uid, key);
+                 	"%s", DBPFX, DBPFX, mb->uid, key);
 	} else {
 		snprintf(query, DEF_QUERYSIZE,
-			 "SELECT message_idnr FROM dbmail_messages "
+			 "SELECT message_idnr FROM %smessages "
 			 "WHERE mailbox_idnr = '%llu' "
-			 "AND status < '%d'  AND unique_id!='' AND %s", mb->uid,
+			 "AND status < '%d'  AND unique_id!='' AND %s", DBPFX, mb->uid,
 			 MESSAGE_STATUS_DELETE, key);
 	}
 	if (db_query(query) == -1) {
@@ -427,10 +431,10 @@
 
 	snprintf(query, DEF_QUERYSIZE,
 		 "SELECT block.messageblk "
-		 "FROM dbmail_messageblks block, dbmail_messages msg "
+		 "FROM %smessageblks block, %smessages msg "
 		 "WHERE block.physmessage_id = msg.physmessage_id "
 		 "AND msg.message_idnr = '%llu' "
-		 "ORDER BY block.messageblk_idnr", 
+		 "ORDER BY block.messageblk_idnr", DBPFX, DBPFX, 
 		 msg_idnr);
 
 	if (db_query(query) == -1) {
diff -urN dbmail-2.1cvs091404.orig/mysql/dbmysql.c dbmail-2.1cvs091404/mysql/dbmysql.c
--- dbmail-2.1cvs091404.orig/mysql/dbmysql.c	2004-06-03 08:41:55.000000000 -0400
+++ dbmail-2.1cvs091404/mysql/dbmysql.c	2004-09-14 14:40:30.000000000 -0400
@@ -255,13 +255,13 @@
 	int result = 0;
 
 	for (i = 0; i < num; i++) {
-		snprintf(the_query, DEF_QUERYSIZE, "OPTIMIZE TABLE %s",
-			 tables[i]);
+		snprintf(the_query, DEF_QUERYSIZE, "OPTIMIZE TABLE %s%s",
+			 _db_params.pfx,tables[i]);
 
 		if (db_query(the_query) == -1) {
 			trace(TRACE_ERROR,
-			      "%s,%s: error optimizing table [%s]",
-			      __FILE__, __func__, tables[i]);
+			      "%s,%s: error optimizing table [%s%s]",
+			      __FILE__, __func__, _db_params.pfx,tables[i]);
 			result = -1;
 		}
 		db_free_result();
diff -urN dbmail-2.1cvs091404.orig/pgsql/dbpgsql.c dbmail-2.1cvs091404/pgsql/dbpgsql.c
--- dbmail-2.1cvs091404.orig/pgsql/dbpgsql.c	2004-08-03 09:05:00.000000000 -0400
+++ dbmail-2.1cvs091404/pgsql/dbpgsql.c	2004-09-14 15:46:24.000000000 -0400
@@ -148,7 +148,7 @@
 	/* postgres uses the currval call on a sequence to determine
 	 * the result value of an insert query */
 	snprintf(query, DEF_QUERYSIZE,
-		 "SELECT currval('dbmail_%s_seq')", sequence_identifier);
+		 "SELECT currval('%s%s_seq')",_db_params.pfx, sequence_identifier);
 
 	db_query(query);
 	if (db_num_rows() == 0) {
@@ -241,11 +241,11 @@
 	char the_query[DEF_QUERYSIZE];
 
 	for (i = 0; i < num_tables; i++) {
-		snprintf(the_query, DEF_QUERYSIZE, "VACUUM %s", tables[i]);
+		snprintf(the_query, DEF_QUERYSIZE, "VACUUM %s%s", _db_params.pfx,tables[i]);
 		if (db_query(the_query) == -1) {
 			trace(TRACE_ERROR,
-			      "%s,%s: error vacuuming table [%s]",
-			      __FILE__, __func__, tables[i]);
+			      "%s,%s: error vacuuming table [%s%s]",
+			      __FILE__, __func__, _db_params.pfx,tables[i]);
 			result = -1;
 		}
 	}
