diff -r 41150ab49bb8 django/db/backends/creation.py
--- a/django/db/backends/creation.py	Sun Nov 14 23:35:16 2010 +0000
+++ b/django/db/backends/creation.py	Tue Nov 16 00:30:36 2010 -0300
@@ -19,6 +19,7 @@
 
     def __init__(self, connection):
         self.connection = connection
+        self.test_database_name = None
 
     def _digest(self, *args):
         """
@@ -343,10 +344,10 @@
         if verbosity >= 1:
             print "Creating test database '%s'..." % self.connection.alias
 
-        test_database_name = self._create_test_db(verbosity, autoclobber)
+        self.test_database_name = self._create_test_db(verbosity, autoclobber)
 
         self.connection.close()
-        self.connection.settings_dict["NAME"] = test_database_name
+        self.connection.settings_dict['NAME'] = self.test_database_name
 
         # Confirm the feature set of the test database
         self.connection.features.confirm()
@@ -367,7 +368,7 @@
         # the side effect of initializing the test database.
         cursor = self.connection.cursor()
 
-        return test_database_name
+        return self.test_database_name
 
     def _create_test_db(self, verbosity, autoclobber):
         "Internal implementation - creates the test db tables."
@@ -414,7 +415,7 @@
         if verbosity >= 1:
             print "Destroying test database '%s'..." % self.connection.alias
         self.connection.close()
-        test_database_name = self.connection.settings_dict['NAME']
+        test_database_name = self.test_database_name
         self.connection.settings_dict['NAME'] = old_database_name
 
         self._destroy_test_db(test_database_name, verbosity)
@@ -428,7 +429,7 @@
         cursor = self.connection.cursor()
         self.set_autocommit()
         time.sleep(1) # To avoid "database is being accessed by other users" errors.
-        cursor.execute("DROP DATABASE %s" % self.connection.ops.quote_name(test_database_name))
+        cursor.execute("DROP DATABASE IF EXISTS %s" % self.connection.ops.quote_name(test_database_name))
         self.connection.close()
 
     def set_autocommit(self):
diff -r 41150ab49bb8 django/db/backends/sqlite3/creation.py
--- a/django/db/backends/sqlite3/creation.py	Sun Nov 14 23:35:16 2010 +0000
+++ b/django/db/backends/sqlite3/creation.py	Tue Nov 16 00:30:36 2010 -0300
@@ -61,6 +61,6 @@
         return test_database_name
 
     def _destroy_test_db(self, test_database_name, verbosity):
-        if test_database_name and test_database_name != ":memory:":
+        if test_database_name and test_database_name != ":memory:" and os.access(test_database_name, os.F_OK):
             # Remove the SQLite database file
             os.remove(test_database_name)
