             /* Update the client counter on badge. */
             update_client_count();
 
-            rate_limit = new RateLimit(RATE_LIMIT * RATE_LIMIT_HISTORY, RATE_LIMIT_HISTORY);
+            if (RATE_LIMIT)
+                rate_limit = new BucketRateLimit(RATE_LIMIT * RATE_LIMIT_HISTORY, RATE_LIMIT_HISTORY);
+            else
+                rate_limit = new RateUnlimit();
 
             puts("Starting.");
             // Wait until the query string parameters are loaded.

        return amount <= capacity;
    }

    public function when():Number
    {
        age();
        return (amount - capacity) / (capacity / time);
    }

    public function is_limited():Boolean
    {
        age();
        return amount > capacity;

            amount = 0.0;
    }

    public override function update(n:Number):Boolean
    {
        age();
        amount += n;
