| Index: chrome/browser/sessions/session_service.cc
 | 
| diff --git a/chrome/browser/sessions/session_service.cc b/chrome/browser/sessions/session_service.cc
 | 
| index 31c296628c91cf8dbbd6992b034f20e97c1cf9d0..4682ca380269dc3180a96be2469d35c05cd595fe 100644
 | 
| --- a/chrome/browser/sessions/session_service.cc
 | 
| +++ b/chrome/browser/sessions/session_service.cc
 | 
| @@ -29,6 +29,10 @@
 | 
|  #include "chrome/common/notification_details.h"
 | 
|  #include "chrome/common/notification_service.h"
 | 
|  
 | 
| +#if defined(OS_MACOSX)
 | 
| +#include "chrome/browser/app_controller_cppsafe_mac.h"
 | 
| +#endif
 | 
| +
 | 
|  using base::Time;
 | 
|  
 | 
|  // Identifier for commands written to file.
 | 
| @@ -409,7 +413,14 @@ void SessionService::Observe(NotificationType type,
 | 
|          return;
 | 
|        }
 | 
|  
 | 
| -      if (!has_open_trackable_browsers_ && !BrowserInit::InProcessStartup()) {
 | 
| +      if (!has_open_trackable_browsers_ && !BrowserInit::InProcessStartup()
 | 
| +#if defined(OS_MACOSX)
 | 
| +          // OSX has a fairly different idea of application lifetime than the
 | 
| +          // other platforms. We need to check that we aren't opening a window
 | 
| +          // from the dock or the menubar.
 | 
| +          && !app_controller_mac::IsOpeningNewWindow()
 | 
| +#endif
 | 
| +          ) {
 | 
|          // We're going from no tabbed browsers to a tabbed browser (and not in
 | 
|          // process startup), restore the last session.
 | 
|          if (move_on_new_browser_) {
 | 
| 
 |