Index: django/db/models/base.py
===================================================================
--- django/db/models/base.py	(revision 17581)
+++ django/db/models/base.py	(working copy)
@@ -500,7 +500,7 @@
                 # At this point, parent's primary key field may be unknown
                 # (for example, from administration form which doesn't fill
                 # this field). If so, fill it.
-                if field and getattr(self, parent._meta.pk.attname) is None and getattr(self, field.attname) is not None:
+                if field and getattr(self, parent._meta.pk.attname) in [None, ''] and getattr(self, field.attname) is not None:
                     setattr(self, parent._meta.pk.attname, getattr(self, field.attname))
 
                 self.save_base(cls=parent, origin=org, using=using)
