diff --git a/lib/gerrit.py b/lib/gerrit.py
index 9704f49..ded8176 100644
--- a/lib/gerrit.py
+++ b/lib/gerrit.py
@@ -336,6 +336,14 @@
       return
     gob_util.RestoreChange(self.host, self._to_changenum(change))
 
+  def DeleteDraft(self, change, dryrun=False):
+    """Delete a draft patch set."""
+    if dryrun:
+      logging.info('Would have deleted draft patch set %s', change)
+      return
+    gob_util.DeleteDraft(self.host, self._to_changenum(change))
+
+
 
 def GetGerritPatchInfo(patches):
   """Query Gerrit server for patch information.
diff --git a/lib/gob_util.py b/lib/gob_util.py
index ee8ffc9..10b35e5 100644
--- a/lib/gob_util.py
+++ b/lib/gob_util.py
@@ -297,6 +297,22 @@
   return FetchUrlJson(host, path, reqtype='POST', body=body, ignore_404=False)
 
 
+def DeleteDraft(host, change, msg=''):
+  """Delete a gerrit draft patch set."""
+  path = 'changes/%s' % change
+  body = {'message': msg} if msg else None
+  try:
+    FetchUrl(host, path, reqtype='DELETE', body=body, ignore_404=False)
+  except GOBError as e:
+    # On success, gerrit returns status 204; anything else is an error.
+    if e.http_status != 204:
+      raise
+  else:
+    raise GOBError(
+        'Unexpectedly received a 200 http status while deleting draft %r'
+        % change)
+
+
 def SubmitChange(host, change, wait_for_merge=True):
   """Submits a gerrit change via Gerrit."""
   path = 'changes/%s/submit' % change
diff --git a/scripts/gerrit.py b/scripts/gerrit.py
index 604a53f..0c9d9e1 100644
--- a/scripts/gerrit.py
+++ b/scripts/gerrit.py
@@ -270,6 +270,11 @@
   opts.gerrit.SetReview(idx, msg=message)
 
 
+def UserActDeletedraft(opts, idx):
+  """Delete draft patch set <n>"""
+  opts.gerrit.DeleteDraft(idx)
+
+
 def main(argv):
   # Locate actions that are exposed to the user.  All functions that start
   # with "UserAct" are fair game.
