Index: wp-includes/post.php
===================================================================
--- wp-includes/post.php	(revision 1996)
+++ wp-includes/post.php	(working copy)
@@ -229,6 +229,9 @@
 				return $null;
 			_get_post_ancestors($_post);
 			wp_cache_add($_post->ID, $_post, 'posts');
+		} elseif ( !isset($_post->ancestors) ) {
+			_get_post_ancestors($_post);
+			wp_cache_replace($_post->ID, $_post, 'posts');
 		}
 	}
 
