Index: c:/python24/lib/site-packages/django-0.91-py2.4.egg/django/core/meta/__init__.py
===================================================================
--- c:/python24/lib/site-packages/django-0.91-py2.4.egg/django/core/meta/__init__.py	(revision 1616)
+++ c:/python24/lib/site-packages/django-0.91-py2.4.egg/django/core/meta/__init__.py	(working copy)
@@ -460,6 +460,10 @@
         for f in to_search:
             if f.name == name:
                 return f
+        if (hasattr(self, 'one_to_one_field') and
+            self.one_to_one_field is not None and
+            self.one_to_one_field.name == name):
+            return self.one_to_one_field
         raise FieldDoesNotExist, "name=%s" % name

     def get_order_sql(self, table_prefix=''):
@@ -1843,7 +1847,13 @@
                     # case, because they'll be dealt with later.

                     if f == related.field:
-                        param = getattr(new_object, related.field.rel.field_name)
+                        to = related.field.rel.to
+                        if (hasattr(to, 'one_to_one_field') and
+                            to.one_to_one_field and
+                            to.one_to_one_field.name == related.field.rel.field_name):
+                            param = getattr(new_object, related.field.rel.field_name + '_id')
+                        else:
+                            param = getattr(new_object, related.field.rel.field_name)
                     elif add and isinstance(f, AutoField):
                         param = None
                     elif change and (isinstance(f, FileField) or not child_follow.get(f.name, None)):
