Index: status/web/builder.py
===================================================================
--- status/web/builder.py	(revision 36)
+++ status/web/builder.py	(revision 37)
@@ -128,7 +128,18 @@
 
         return data
 
-    def force(self, req):
+    def force(self, req, custom_props={}):
+        """
+
+        Custom properties can be passed from the web form.  To do
+        this, subclass this class, overriding the force() method.  You
+        can then determine the properties (usually from form values,
+        by inspecting req.args), then passing them to this superclass
+        force method.
+        
+        @param custom_props: Custom properties to set on build
+        
+        """
         name = req.args.get("username", ["<unknown>"])[0]
         reason = req.args.get("comments", ["<no reason specified>"])[0]
         branch = req.args.get("branch", [""])[0]
@@ -161,7 +172,7 @@
         # button, use their name instead of None, so they'll be informed of
         # the results.
         s = SourceStamp(branch=branch, revision=revision)
-        req = BuildRequest(r, s, self.builder_status.getName())
+        req = BuildRequest(r, s, custom_props, self.builder_status.getName())
         try:
             self.builder_control.requestBuildSoon(req)
         except interfaces.NoSlaveError:
Index: process/base.py
===================================================================
--- process/base.py	(revision 36)
+++ process/base.py	(revision 37)
@@ -90,7 +90,7 @@
         return d
 
     def customProps(self):
-     return self.custom_props;
+     return self.custom_props
 
     # these are called by the Builder
 
@@ -272,10 +272,9 @@
         self.setProperty("buildnumber", self.build_status.number)
         self.setProperty("branch", self.source.branch)
         self.setProperty("revision", self.source.revision)
-        cp = self.custom_properties
-        for key,userProp in cp.iteritems():
-         self.setProperty(key,userProp)
-
+        for key, userProp in self.custom_properties.iteritems():
+            self.setProperty(key,userProp)
+         
     def setupSlaveBuilder(self, slavebuilder):
         self.slavebuilder = slavebuilder
         self.slavename = slavebuilder.slave.slavename

