 
   # ### Clear A Queue
   
-  # Clear a queue. Remove **all** tasks, callback statistics.
+  # Remove **all** tasks of the queue, and reset statistics.
   clear: (callback) =>
     @redis.watch @key('SOURCE')
     @redis.keys "#{@key('QUEUED')}:*", (err, res) =>
+      return callback err if err
       multi = @redis.multi()
       multi.del @key('GROUPS'), @key('RECENT'), @key('FAILED'), @key('SOURCE'), @key('STATISTICS'), @key('SLOWEST'), @key('BLOCKED'), res...
+      multi.hmset @key('STATISTICS'), 'total', 0, 'finished', 0, 'total_pending_time', 0, 'total_processing_time', 0
       multi.exec (err, res) =>
+        return callback err if err
         return @clear callback unless res
         @statistics callback
 
   # ### Get Statistics of a Queue Asynchronously
-  #
+  
   # Statistics of a queue include:
   # 
   #   + `total`

  # **Usage:**
  #
  #     queue.workers (workers) -> YOUR CODE HERE
  workers: (callback) ->
    @redis.hvals @key('WORKERS'), (err, res) ->
      callback err if err
      callback null, res.map (entry) ->
        entry = entry.split '|'
        host: entry[0]

  #
  # Below is an example `res` array:
  #
  #     [{ id:     '8c0c3eab-8114-41d6-8808-2ae8615d38b4',
  #        params: [ 'param1', 'param2' ],
  #        queued: Sat, 12 May 2012 07:41:33 GMT // Date Object
  #      }, ...]
