Index: django/db/models/manipulators.py
===================================================================
--- django/db/models/manipulators.py	(wersja 7534)
+++ django/db/models/manipulators.py	(kopia robocza)
@@ -95,7 +95,11 @@
             params[f.attname] = param
 
         if self.change:
-            params[self.opts.pk.attname] = self.obj_key
+            def propagate_pks( opts ):
+                params[opts.pk.attname] = self.obj_key
+                for p in opts.parents.keys():
+                    propagate_pks( p._meta )
+            propagate_pks( self.opts )
 
         # First, create the basic object itself.
         new_object = self.model(**params)
