diff --git a/mojo/public/cpp/application/application_impl_base.h b/mojo/public/cpp/application/application_impl_base.h
index 04109d7..8d3cbf6 100644
--- a/mojo/public/cpp/application/application_impl_base.h
+++ b/mojo/public/cpp/application/application_impl_base.h
@@ -31,10 +31,14 @@
 // use this class in the current setup).
 class ApplicationImplBase : public Application {
  public:
-  explicit ApplicationImplBase(
-      InterfaceRequest<Application> application_request);
+  ApplicationImplBase();
   ~ApplicationImplBase() override;
 
+  // Binds the given |Application| request to this object. This must be done
+  // with the message (run) loop available/running, and this will cause this
+  // object to start serving requests (via that message loop).
+  void Bind(InterfaceRequest<Application> application_request);
+
   // Quits the main run loop for this application.
   // TODO(vtl): This is implemented in application_runner.cc (for example). Its
   // presence here is pretty dubious.
diff --git a/mojo/public/cpp/application/lib/application_impl.cc b/mojo/public/cpp/application/lib/application_impl.cc
index 194c942..a9a7e58 100644
--- a/mojo/public/cpp/application/lib/application_impl.cc
+++ b/mojo/public/cpp/application/lib/application_impl.cc
@@ -10,7 +10,9 @@
 
 ApplicationImpl::ApplicationImpl(ApplicationDelegate* delegate,
                                  InterfaceRequest<Application> request)
-    : ApplicationImplBase(request.Pass()), delegate_(delegate) {}
+    : delegate_(delegate) {
+  Bind(request.Pass());
+}
 
 ApplicationImpl::~ApplicationImpl() {}
 
diff --git a/mojo/public/cpp/application/lib/application_impl_base.cc b/mojo/public/cpp/application/lib/application_impl_base.cc
index a5e90d6..544c262 100644
--- a/mojo/public/cpp/application/lib/application_impl_base.cc
+++ b/mojo/public/cpp/application/lib/application_impl_base.cc
@@ -13,12 +13,15 @@
 
 namespace mojo {
 
-ApplicationImplBase::ApplicationImplBase(
-    InterfaceRequest<Application> application_request)
-    : application_binding_(this, application_request.Pass()) {}
+ApplicationImplBase::ApplicationImplBase() : application_binding_(this) {}
 
 ApplicationImplBase::~ApplicationImplBase() {}
 
+void ApplicationImplBase::Bind(
+    InterfaceRequest<Application> application_request) {
+  application_binding_.Bind(application_request.Pass());
+}
+
 bool ApplicationImplBase::HasArg(const std::string& arg) const {
   return std::find(args_.begin(), args_.end(), arg) != args_.end();
 }
diff --git a/mojo/ui/content_viewer_app.cc b/mojo/ui/content_viewer_app.cc
index edc5ad1..0ede5d2 100644
--- a/mojo/ui/content_viewer_app.cc
+++ b/mojo/ui/content_viewer_app.cc
@@ -64,8 +64,11 @@
     mojo::InterfaceRequest<mojo::Application> application_request,
     mojo::URLResponsePtr response) {
   ViewProviderApp* app = LoadContent(content_handler_url, response.Pass());
-  if (app)
+  if (app) {
+    // TODO(vtl): This is leaky, since |ApplicationImpl| doesn't own itself.
+    // (Also, who owns |*app|?)
     new mojo::ApplicationImpl(app, application_request.Pass());
+  }
 }
 
 }  // namespace ui
