diff -ru dbmail/mysql/dbmysql.c dbmail.working/mysql/dbmysql.c
--- dbmail/mysql/dbmysql.c	2002-12-11 11:17:28.000000000 +1300
+++ dbmail.working/mysql/dbmysql.c	2002-12-11 11:19:17.000000000 +1300
@@ -496,13 +496,47 @@
       return 0;
     }
 
+#ifdef AUTO_CREATE_MAILBOX
+  if (mysql_num_rows(res)<1) 
+    {
+      trace(TRACE_INFO,"db_get_mailboxid(): user has no mailbox named [%s] - Creating", mailbox);
+      mysql_free_result(res);
+      db_createmailbox(mailbox, useridnr);
+
+      snprintf (query, DEF_QUERYSIZE,"SELECT mailbox_idnr FROM mailboxes WHERE "
+	                         "name=\'%s\' AND owner_idnr=%llu", mailbox, useridnr);
+
+      // double check to see if mailbox exists now
+      if (db_query(query)==-1)
+      {
+        trace(TRACE_ERROR, "db_get_mailboxid(): query failed");
+        return 0;
+      }
+
+   	if ((res = mysql_store_result(&conn)) == NULL)
+   	{
+	      trace(TRACE_ERROR,"db_get_mailboxid(): mysql_store_result failed: %s",mysql_error(&conn));
+	      return 0;
+      }
+   
+   	if (mysql_num_rows(res)<1)
+   	{
+         trace (TRACE_ERROR,"db_get_mailboxid(): user has no mailbox named [%s]. Couldn't create.", mailbox);
+         mysql_free_result(res);
+         
+         return 0;
+      }
+    } 
+#else
   if (mysql_num_rows(res)<1) 
     {
       trace (TRACE_DEBUG,"db_get_mailboxid(): user has no mailbox named [%s]", mailbox);
       mysql_free_result(res);
       
       return 0; 
-    } 
+    }
+#endif 
+
 
   if ((row = mysql_fetch_row(res))==NULL)
     {
