diff -r adeb38266445 lib/sqlalchemy/orm/mapper.py
--- a/lib/sqlalchemy/orm/mapper.py	Thu Dec 15 11:42:50 2011 -0500
+++ b/lib/sqlalchemy/orm/mapper.py	Thu Dec 15 18:14:14 2011 -0500
@@ -2319,6 +2319,8 @@
         for state, state_dict, mapper, connection, has_identity, \
                         instance_key, row_switch in tups:
 
+            state._updated_flag = True
+
             if mapper._readonly_props:
                 readonly = state.unmodified_intersection(
                     [p.key for p in mapper._readonly_props 
diff -r adeb38266445 lib/sqlalchemy/orm/state.py
--- a/lib/sqlalchemy/orm/state.py	Thu Dec 15 11:42:50 2011 -0500
+++ b/lib/sqlalchemy/orm/state.py	Thu Dec 15 18:14:14 2011 -0500
@@ -34,6 +34,7 @@
     load_path = ()
     insert_order = None
     mutable_dict = None
+    _updated_flag = False
     _strong_obj = None
     modified = False
     expired = False
@@ -425,7 +426,7 @@
         if instance_dict and self.modified:
             instance_dict._modified.discard(self)
 
-        self.modified = self.expired = False
+        self.modified = self.expired = self._updated_flag = False
         self._strong_obj = None
 
 class MutableAttrInstanceState(InstanceState):
diff -r adeb38266445 lib/sqlalchemy/orm/strategies.py
--- a/lib/sqlalchemy/orm/strategies.py	Thu Dec 15 11:42:50 2011 -0500
+++ b/lib/sqlalchemy/orm/strategies.py	Thu Dec 15 18:14:14 2011 -0500
@@ -410,7 +410,7 @@
         # for this state.
 
         sess = sessionlib._state_session(state)
-        if sess is not None and sess._flushing:
+        if sess is not None and sess._flushing and not state._updated_flag:
             def visit_bindparam(bindparam):
                 if bindparam._identifying_key in bind_to_col:
                     bindparam.callable = \
@@ -488,7 +488,7 @@
         # if we have a simple primary key load, check the 
         # identity map without generating a Query at all
         if self.use_get:
-            if session._flushing:
+            if session._flushing and not state._updated_flag:
                 get_attr = instance_mapper._get_committed_state_attr_by_column
             else:
                 get_attr = instance_mapper._get_state_attr_by_column
