Index: django/contrib/auth/management/commands/createsuperuser.py
===================================================================
--- django/contrib/auth/management/commands/createsuperuser.py	(revision 15613)
+++ django/contrib/auth/management/commands/createsuperuser.py	(working copy)
@@ -53,7 +53,8 @@
             except exceptions.ValidationError:
                 raise CommandError("Invalid email address.")
 
-        password = ''
+	# If not provided, create the user with an unusable password
+        password = None
 
         # Try to determine the current system user's username to use as a default.
         try:
Index: django/contrib/auth/tests/basic.py
===================================================================
--- django/contrib/auth/tests/basic.py	(revision 15613)
+++ django/contrib/auth/tests/basic.py	(working copy)
@@ -62,7 +62,9 @@
         self.assertEqual(command_output, 'Superuser created successfully.')
         u = User.objects.get(username="joe")
         self.assertEquals(u.email, 'joe@somewhere.org')
-        self.assertTrue(u.check_password(''))
+        
+        # created password should be unusable
+        self.assertFalse(u.has_usable_password())
 
         # We can supress output on the management command
         new_io = StringIO()
@@ -77,8 +79,9 @@
         self.assertEqual(command_output, '')
         u = User.objects.get(username="joe2")
         self.assertEquals(u.email, 'joe2@somewhere.org')
-        self.assertTrue(u.check_password(''))
+        self.assertFalse(u.has_usable_password())
 
+
         new_io = StringIO()
         call_command("createsuperuser",
             interactive=False,
@@ -88,5 +91,5 @@
         )
         u = User.objects.get(username="joe+admin@somewhere.org")
         self.assertEquals(u.email, 'joe@somewhere.org')
-        self.assertTrue(u.check_password(''))
+        self.assertFalse(u.has_usable_password())
 
