diff -r a5998a7616f4 buildbot/buildset.py
--- a/buildbot/buildset.py	Mon Jun 30 07:39:30 2008 -0400
+++ b/buildbot/buildset.py	Tue Jul 08 11:28:13 2008 -0400
@@ -31,7 +31,7 @@
     def waitUntilFinished(self):
         return self.status.waitUntilFinished()
 
-    def start(self, builders):
+    def start(self, builders, notifyScheduler=None):
         """This is called by the BuildMaster to actually create and submit
         the BuildRequests."""
         self.requests = []
@@ -45,6 +45,9 @@
             self.requests.append(req)
             d = req.waitUntilFinished()
             d.addCallback(self.requestFinished, req)
+            if notifyScheduler:
+                req.subscribe(notifyScheduler.buildStarted)
+                d.addCallback(notifyScheduler.buildFinished, req)
 
         # tell our status about them
         req_statuses = [req.status for req in self.requests]
diff -r a5998a7616f4 buildbot/interfaces.py
--- a/buildbot/interfaces.py	Mon Jun 30 07:39:30 2008 -0400
+++ b/buildbot/interfaces.py	Tue Jul 08 11:28:13 2008 -0400
@@ -967,7 +967,7 @@
         themselves whether the change is interesting or not, and may initiate
         a build as a result."""
 
-    def submitBuildSet(buildset):
+    def submitBuildSet(buildset, notifyScheduler):
         """Submit a BuildSet object, which will eventually be run on all of
         the builders listed therein."""
 
diff -r a5998a7616f4 buildbot/master.py
--- a/buildbot/master.py	Mon Jun 30 07:39:30 2008 -0400
+++ b/buildbot/master.py	Tue Jul 08 11:28:13 2008 -0400
@@ -870,7 +870,7 @@
         for s in self.allSchedulers():
             s.addChange(change)
 
-    def submitBuildSet(self, bs):
+    def submitBuildSet(self, bs, notifyScheduler=None):
         # determine the set of Builders to use
         builders = []
         for name in bs.builderNames:
@@ -884,7 +884,7 @@
 
         # now tell the BuildSet to create BuildRequests for all those
         # Builders and submit them
-        bs.start(builders)
+        bs.start(builders, notifyScheduler)
         self.status.buildsetSubmitted(bs.status)
 
 
@@ -897,8 +897,8 @@
     def addChange(self, change):
         self.master.change_svc.addChange(change)
 
-    def submitBuildSet(self, bs):
-        self.master.submitBuildSet(bs)
+    def submitBuildSet(self, bs, notifyScheduler):
+        self.master.submitBuildSet(bs, notifyScheduler)
 
     def getBuilder(self, name):
         b = self.master.botmaster.builders[name]
diff -r a5998a7616f4 buildbot/test/test_scheduler.py
--- a/buildbot/test/test_scheduler.py	Mon Jun 30 07:39:30 2008 -0400
+++ b/buildbot/test/test_scheduler.py	Tue Jul 08 11:28:13 2008 -0400
@@ -14,7 +14,7 @@
 
 class FakeMaster(service.MultiService):
     d = None
-    def submitBuildSet(self, bs):
+    def submitBuildSet(self, bs, notifyScheduler):
         self.sets.append(bs)
         if self.d:
             reactor.callLater(0, self.d.callback, bs)

