Index: django/contrib/admin/views/main.py
===================================================================
--- django/contrib/admin/views/main.py	(revision 2714)
+++ django/contrib/admin/views/main.py	(working copy)
@@ -199,8 +199,10 @@
         except meta.FieldDoesNotExist:
             pass
         else:
-            if isinstance(lookup_opts.get_field(order_field).rel, meta.ManyToOneRel):
-                f = lookup_opts.get_field(order_field)
+            f = lookup_opts.get_field(order_field)
+            if isinstance(f.rel, meta.OneToOneRel):
+                lookup_order_field = '%s' % (f.column,)
+            elif isinstance(f.rel, meta.ManyToOneRel):
                 rel_ordering = f.rel.to.ordering and f.rel.to.ordering[0] or f.rel.to.pk.column
                 lookup_order_field = '%s.%s' % (f.rel.to.db_table, rel_ordering)
         # Use select_related if one of the list_display options is a field with a
