diff --git a/sites/all/modules/contrib/drafty/drafty.module b/sites/all/modules/contrib/drafty/drafty.module
index ab6cb1f..97e48be 100644
--- a/sites/all/modules/contrib/drafty/drafty.module
+++ b/sites/all/modules/contrib/drafty/drafty.module
@@ -81,6 +81,24 @@ function drafty_field_attach_load($entity_type, $entities, $age, $options) {
 }
 
 /**
+ * Implements hook_cron_queue_info().
+ */
+function drafty_cron_queue_info() {
+  $queues['drafty_revision_delete'] = array(
+    'worker callback' => 'drafty_queue_delete_revision',
+    'time' => 60,
+  );
+  return $queues;
+}
+
+/**
+ * Cron queue callback.
+ */
+function drafty_queue_delete_revision($drafty_queue_item) {
+  entity_revision_delete($drafty_queue_item['entity_type'], $drafty_queue_item['revision_id']);
+}
+
+/**
  * Factory function for the DraftyTracker class.
  */
 function drafty() {
@@ -233,11 +251,17 @@ class Drafty {
         // the revision in the system. The original 'draft' revision and the
         // newly saved published revision. Delete the draft revision now since
         // it's not needed.
-        // @todo: make this configurable?
+        if (variable_get('drafty_delete_old_revisions', FALSE)) {
+          $queue = DrupalQueue::get('drafty_revision_delete');
+          $drafty_queue_item = array(
+            'entity_type' => $type,
+            'entity_id' => $id,
+            'revision_id' => $vid,
+          );
+          $queue->createItem($drafty_queue_item);
+        }
         // @todo: when restoring a published revision, should the revision
         // timestamp be set to the old value?
-        // @todo: move this to a queue since the deletion doesn't strictly have
-        // to happen inline.
       }
     }
   }
