diff --git a/master/buildbot/status/web/baseweb.py b/master/buildbot/status/web/baseweb.py
index <HASH>..<HASH> 100644
--- a/master/buildbot/status/web/baseweb.py
+++ b/master/buildbot/status/web/baseweb.py
@@ -377,8 +377,6 @@ class WebStatus(service.MultiService):
                 (self.http_port, self.distrib_port, hex(id(self))))
 
     def setServiceParent(self, parent):
-        service.MultiService.setServiceParent(self, parent)
-
         # this class keeps a *separate* link to the buildmaster, rather than
         # just using self.parent, so that when we are "disowned" (and thus
         # parent=None), any remaining HTTP clients of this WebStatus will still
@@ -444,6 +442,8 @@ class WebStatus(service.MultiService):
 
         self.setupSite()
 
+        service.MultiService.setServiceParent(self, parent)
+
     def setupSite(self):
         # this is responsible for creating the root resource. It isn't done
         # at __init__ time because we need to reference the parent's basedir.
Fix race condition during web status reconfig.

Service.setServiceParent starts the current service, if the parent is already started.
Thus, the current service needs to be ready to run when we call it.

Fixes #<I>.