diff --git a/samples/gtaskqueue_sample/gtaskqueue/task_cmds.py b/samples/gtaskqueue_sample/gtaskqueue/task_cmds.py
index 4adea2b..5bbc2ad 100644
--- a/samples/gtaskqueue_sample/gtaskqueue/task_cmds.py
+++ b/samples/gtaskqueue_sample/gtaskqueue/task_cmds.py
@@ -55,18 +55,21 @@
     """Lease a new task from the queue."""
 
     def __init__(self, name, flag_values):
+        flags.DEFINE_integer('lease_secs',
+                             None,
+                             'The lease for the task in seconds',
+                             flag_values=flag_values)
+        flags.DEFINE_integer('num_tasks',
+                             1,
+                             'The number of tasks to lease',
+                             flag_values=flag_values)
+        flags.DEFINE_integer('payload_size_to_display',
+                             2 * 1024 * 1024,
+                             'Size of the payload for leased tasks to show',
+                             flag_values=flag_values)
         super(LeaseTaskCommand, self).__init__(name,
                                                flag_values,
                                                need_task_flag=False)
-        flags.DEFINE_integer('lease_secs',
-                             None,
-                             'The lease for the task in seconds')
-        flags.DEFINE_integer('num_tasks',
-                             1,
-                             'The number of tasks to lease')
-        flags.DEFINE_integer('payload_size_to_display',
-                             2 * 1024 * 1024,
-                             'Size of the payload for leased tasks to show')
 
     def build_request(self, task_api, flag_values):
         """Build a request to lease a pending task from the TaskQueue.
@@ -143,8 +146,67 @@
                              taskqueue=flag_values.taskqueue_name)
 
 
+class ClearTaskQueueCommand(GoogleTaskCommand):
+    """Deletes all tasks in a queue (default to a max of 100)."""
+
+
+    def __init__(self, name, flag_values):
+        flags.DEFINE_integer('max_delete', 100, 'How many to clear at most',
+                             flag_values=flag_values)
+        super(ClearTaskQueueCommand, self).__init__(name,
+                                                    flag_values,
+                                                    need_task_flag=False)
+
+    def run_with_api_and_flags(self, api, flag_values):
+        """Run the command, returning the result.
+
+        Args:
+            api: The handle to the Google TaskQueue API.
+            flag_values: The parsed command flags.
+        Returns:
+            The result of running the command.
+        """
+        tasks_api = api.tasks()
+        self._flag_values = flag_values
+        self._to_delete = flag_values.max_delete
+        total_deleted = 0
+        while self._to_delete > 0:
+          n_deleted = self._delete_a_batch(tasks_api)
+          if n_deleted <= 0:
+            break
+          total_deleted += n_deleted
+        return {'deleted': total_deleted}
+
+    def _delete_a_batch(self, tasks):
+        """Delete a batch of tasks.
+
+        Since the list method only gives us back 100 at a time, we may have
+        to call it several times to clear the entire queue.
+
+        Args:
+            tasks: The handle to the Google TaskQueue API Tasks resource.
+        Returns:
+            The number of tasks deleted.
+        """
+        list_request = tasks.list(project=self._flag_values.project_name,
+                                  taskqueue=self._flag_values.taskqueue_name)
+        result = list_request.execute()
+        n_deleted = 0
+        if result:
+          for task in result.get('items', []):
+            if self._to_delete > 0:
+              self._to_delete -= 1
+              n_deleted += 1
+              print 'Deleting: %s' % task['id']
+              tasks.delete(project=self._flag_values.project_name,
+                           taskqueue=self._flag_values.taskqueue_name,
+                           task=task['id']).execute()
+        return n_deleted
+
+
 def add_commands():
     appcommands.AddCmd('listtasks', ListTasksCommand)
     appcommands.AddCmd('gettask', GetTaskCommand)
     appcommands.AddCmd('deletetask', DeleteTaskCommand)
     appcommands.AddCmd('leasetask', LeaseTaskCommand)
+    appcommands.AddCmd('clear', ClearTaskQueueCommand)
diff --git a/samples/gtaskqueue_sample/gtaskqueue/taskqueue_cmds.py b/samples/gtaskqueue_sample/gtaskqueue/taskqueue_cmds.py
index 99c3f2a..f21840a 100644
--- a/samples/gtaskqueue_sample/gtaskqueue/taskqueue_cmds.py
+++ b/samples/gtaskqueue_sample/gtaskqueue/taskqueue_cmds.py
@@ -33,10 +33,11 @@
     """Get properties of an existing task queue."""
 
     def __init__(self, name, flag_values):
-        super(GetTaskQueueCommand, self).__init__(name, flag_values)
         flags.DEFINE_boolean('get_stats',
                              False,
-                             'Whether to get Stats')
+                             'Whether to get Stats',
+                             flag_values=flag_values)
+        super(GetTaskQueueCommand, self).__init__(name, flag_values)
 
     def build_request(self, taskqueue_api, flag_values):
         """Build a request to get properties of a TaskQueue.
