diff -r 36755ba72782 lib/sqlalchemy/orm/mapper.py
--- a/lib/sqlalchemy/orm/mapper.py	Tue Sep 28 12:43:36 2010 -0400
+++ b/lib/sqlalchemy/orm/mapper.py	Tue Sep 28 19:35:44 2010 -0400
@@ -1401,25 +1401,25 @@
 
         """
         visited_instances = util.IdentitySet()
-        visitables = [(self._props.itervalues(), 'property', state)]
+        visitables = [(deque(self._props.itervalues()), 'property', state)]
 
         while visitables:
             iterator, item_type, parent_state = visitables[-1]
-            try:
-                if item_type == 'property':
-                    prop = iterator.next()
-                    visitables.append(
-                                (prop.cascade_iterator(type_, parent_state, 
-                                visited_instances, halt_on), 'mapper', None)
-                                )
-                elif item_type == 'mapper':
-                    instance, instance_mapper, corresponding_state  = \
-                                    iterator.next()
-                    yield (instance, instance_mapper)
-                    visitables.append((instance_mapper._props.itervalues(), 
-                                            'property', corresponding_state))
-            except StopIteration:
+            if not iterator:
                 visitables.pop()
+                continue
+            if item_type == 'property':
+                prop = iterator.popleft()
+                visitables.append(
+                            (deque(prop.cascade_iterator(type_, parent_state, 
+                            visited_instances, halt_on)), 'mapper', None)
+                            )
+            elif item_type == 'mapper':
+                instance, instance_mapper, corresponding_state  = \
+                                iterator.popleft()
+                yield (instance, instance_mapper)
+                visitables.append((deque(instance_mapper._props.itervalues()), 
+                                        'property', corresponding_state))
 
     @_memoized_compiled_property
     def _compiled_cache(self):
