Index: db/models/base.py
===================================================================
--- db/models/base.py	(revision 6783)
+++ db/models/base.py	(working copy)
@@ -361,7 +361,8 @@
                 qn(self._meta.db_table), qn(self._meta.pk.column)),
                 '%s=%%s' % qn(order_field.column)]
             params = [self._get_pk_val(), getattr(self, order_field.attname)]
-            obj = self._default_manager.order_by('_order').extra(where=where, params=params)[:1].get()
+            direction = is_next and '' or '-'
+            obj = self._default_manager.order_by('%s_order' % direction).extra(where=where, params=params)[:1].get()
             setattr(self, cachename, obj)
         return getattr(self, cachename)
 
