| Index: chrome/browser/prerender/prerender_manager.cc | 
| diff --git a/chrome/browser/prerender/prerender_manager.cc b/chrome/browser/prerender/prerender_manager.cc | 
| index 3ead07f66ed0987a4809522fb4cf419f844ce887..56ef34ee50d96fffdbc83262fa2e4640dc69ec10 100644 | 
| --- a/chrome/browser/prerender/prerender_manager.cc | 
| +++ b/chrome/browser/prerender/prerender_manager.cc | 
| @@ -421,6 +421,14 @@ bool PrerenderManager::MaybeUsePrerenderedPage(WebContents* web_contents, | 
| prerender_data->contents()->prerender_contents()) { | 
| if (web_contents == new_web_contents) | 
| return false;  // Do not swap in to ourself. | 
| + | 
| +    // We cannot swap in if there is no last committed entry, because we would | 
| +    // show a blank page under an existing entry from the current tab.  Even if | 
| +    // there is a pending entry, it may not commit. | 
| +    // TODO(creis): If there is a pending navigation and no last committed | 
| +    // entry, we might be able to transfer the network request instead. | 
| +    if (!new_web_contents->GetController().CanPruneAllButVisible()) | 
| +      return false; | 
| } | 
|  | 
| // Do not use the prerendered version if there is an opener object. | 
|  |