| Index: runtime/bin/main.cc
 | 
| diff --git a/runtime/bin/main.cc b/runtime/bin/main.cc
 | 
| index 4e2b24acce608c4e11f99cce29d897f7384bef8b..5b2c70b9c37aed5d9a58c8ff9efaf35bfc00f446 100644
 | 
| --- a/runtime/bin/main.cc
 | 
| +++ b/runtime/bin/main.cc
 | 
| @@ -110,6 +110,8 @@ static void ErrorExit(int exit_code, const char* format, ...) {
 | 
|  
 | 
|    Dart_Cleanup();
 | 
|  
 | 
| +  DebuggerConnectionHandler::StopHandler();
 | 
| +  EventHandler::Stop();
 | 
|    exit(exit_code);
 | 
|  }
 | 
|  
 | 
| @@ -1042,6 +1044,8 @@ void main(int argc, char** argv) {
 | 
|                         DartUtils::EntropySource)) {
 | 
|      fprintf(stderr, "%s", "VM initialization failed\n");
 | 
|      fflush(stderr);
 | 
| +    DebuggerConnectionHandler::StopHandler();
 | 
| +    EventHandler::Stop();
 | 
|      exit(kErrorExitCode);
 | 
|    }
 | 
|  
 | 
| @@ -1066,6 +1070,8 @@ void main(int argc, char** argv) {
 | 
|      Log::PrintErr("%s\n", error);
 | 
|      free(error);
 | 
|      delete [] isolate_name;
 | 
| +    DebuggerConnectionHandler::StopHandler();
 | 
| +    EventHandler::Stop();
 | 
|      exit((exit_code != 0) ? exit_code : kErrorExitCode);
 | 
|    }
 | 
|    delete [] isolate_name;
 | 
| @@ -1171,6 +1177,9 @@ void main(int argc, char** argv) {
 | 
|  
 | 
|    Dart_Cleanup();
 | 
|  
 | 
| +  DebuggerConnectionHandler::StopHandler();
 | 
| +  EventHandler::Stop();
 | 
| +
 | 
|    // Free copied argument strings if converted.
 | 
|    if (argv_converted) {
 | 
|      for (int i = 0; i < argc; i++) free(argv[i]);
 | 
| 
 |