             }
             max_num_proxy_pairs = uint(tmp);
 
+            tmp = get_param_timespec("facilitator_poll_interval", DEFAULT_FACILITATOR_POLL_INTERVAL);
+            if (tmp == null || tmp < MIN_FACILITATOR_POLL_INTERVAL) {
+                puts("Error: facilitator_poll_interval must be a nonnegative number at least " + MIN_FACILITATOR_POLL_INTERVAL + ".");
+                return;
+            }
+            facilitator_poll_interval = Number(tmp);
+
             local_addr = get_param_addr("local", DEFAULT_LOCAL_TOR_CLIENT_ADDR);
             if (!local_addr) {
                 puts("Error: Local spec must be in the form \"host:port\".");

            var relay_spec:String;
            var proxy_pair:Object;

            setTimeout(proxy_main, FACILITATOR_POLL_INTERVAL);

            loader = e.target as URLLoader;
            client_spec = loader.data.client;

            var loader:URLLoader;

            if (proxy_pairs.length >= max_num_proxy_pairs) {
                setTimeout(proxy_main, uint(facilitator_poll_interval * 1000));
                return;
            }

