| Index: mojo/public/cpp/application/lib/mojo_main_standalone.cc | 
| diff --git a/mojo/public/cpp/application/lib/mojo_main_standalone.cc b/mojo/public/cpp/application/lib/mojo_main_standalone.cc | 
| index 0ba078b25cf287bdcbac5bfaa775d36b99f85eed..6071b6b4f280aefe24b8b7ce3523f2c3341da880 100644 | 
| --- a/mojo/public/cpp/application/lib/mojo_main_standalone.cc | 
| +++ b/mojo/public/cpp/application/lib/mojo_main_standalone.cc | 
| @@ -10,12 +10,17 @@ | 
| extern "C" APPLICATION_EXPORT MojoResult CDECL MojoMain( | 
| MojoHandle shell_handle) { | 
| mojo::Environment env; | 
| -  mojo::RunLoop loop; | 
| -  mojo::ApplicationDelegate* delegate = mojo::ApplicationDelegate::Create(); | 
| +  mojo::ApplicationDelegate* delegate = NULL; | 
| { | 
| -    mojo::ApplicationImpl app(delegate); | 
| -    app.BindShell(shell_handle); | 
| -    loop.Run(); | 
| +    // We have to shut down the RunLoop before destroying the | 
| +    // ApplicationDelegate. | 
| +    mojo::RunLoop loop; | 
| +    delegate = mojo::ApplicationDelegate::Create(); | 
| +    { | 
| +      mojo::ApplicationImpl app(delegate); | 
| +      app.BindShell(shell_handle); | 
| +      loop.Run(); | 
| +    } | 
| } | 
| delete delegate; | 
|  | 
|  |