diff --git a/includes/og_vocab.og_vocab.inc b/includes/og_vocab.og_vocab.inc
index 868a222..0a6e191 100644
--- a/includes/og_vocab.og_vocab.inc
+++ b/includes/og_vocab.og_vocab.inc
@@ -210,12 +210,10 @@ class OgVocab extends Entity {
    * Overrides Entity::delete().
    */
   public function delete() {
-    $use_queue = variable_get('og_use_queue', FALSE) && variable_get('og_vocab_use_queue', FALSE) && module_exists('advancedqueue');
-
-    if ($use_queue) {
+    if (variable_get('og_vocab_use_queue', FALSE)) {
       // Add item to the queue.
       $group = og_vocab_relation_get($this->vid);
-      $task = array(
+      $data = array(
         'vid' => $this->vid,
         'entity_type' => $this->entity_type,
         'bundle' => $this->bundle,
@@ -227,7 +225,7 @@ class OgVocab extends Entity {
       );
 
       $queue = DrupalQueue::get('og_vocab');
-      $queue->createItem($task);
+      $queue->createItem($data);
     }
 
     // After defining the item data, if we used queue, delete the entity.
diff --git a/og_vocab.module b/og_vocab.module
index b0f5de5..e6b4553 100644
--- a/og_vocab.module
+++ b/og_vocab.module
@@ -1158,14 +1158,8 @@ function og_vocab_form_og_ui_admin_settings_alter(&$form, $form_state) {
   $form['og_vocab_use_queue'] = array(
     '#type' => 'checkbox',
     '#title' => t('Delete OG vocab terms reference with the queue'),
-    '#description' => t('Use the advance queue for deleting the OG vocabulary term reference when OG vocabulary is deleted.'),
+    '#description' => t('Use the queue for deleting the OG vocabulary term reference when OG vocabulary is deleted.'),
     '#default_value' => variable_get('og_vocab_use_queue', FALSE),
-    '#disabled' => !module_exists('advancedqueue'),
-    '#states' => array(
-      'visible' => array(
-        ':input[name="og_use_queue"]' => array('checked' => TRUE),
-      ),
-    ),
     '#attributes' => array(
       'class' => array('entityreference-settings'),
     ),
@@ -1469,14 +1463,25 @@ function og_vocab_advanced_queue_info() {
 }
 
 /**
+ * Implements hook_cron_queue_info().
+ */
+function og_vocab_cron_queue_info() {
+  $items['og_vocab'] = array(
+    'title' => t('OG Vocabulary'),
+    'worker callback' => 'og_vocab_remove_referenced_items_queue_worker',
+    'time' => 60,
+  );
+  return $items;
+}
+
+
+/**
  * Advanced queue worker; Process a queue item.
  *
- * The item holds the Message ID, and user ID of the last user the email
- * was sent to.
+ * When a OG vocabulary is being deleted we need to remove the reference between
+ * the nodes to the terms.
  */
-function og_vocab_advancedqueue_worker($item, $end_time = FALSE) {
-  $queue = DrupalQueue::get('og_vocab');
-  $data = $item->data;
+function og_vocab_remove_referenced_items_queue_worker($data, $end_time = FALSE) {
   extract($data);
 
   // Get range of the group content.
@@ -1507,7 +1512,7 @@ function og_vocab_advancedqueue_worker($item, $end_time = FALSE) {
 
   if (empty($result)) {
     // No more group-content for this entity, so we can delete the task item.
-    return $queue->deleteItem($item);
+    return;
   }
 
   foreach ($result as $row) {
@@ -1536,15 +1541,16 @@ function og_vocab_advancedqueue_worker($item, $end_time = FALSE) {
   }
 
   // Update the item with the last OG-membership ID.
-  $item->data['last_id'] = $last_id;
-  db_update('advancedqueue')
-    ->fields(array(
-    'data' => serialize($item->data),
-  ))
-    ->condition('item_id', $item->item_id)
-    ->execute();
+  $data = array(
+    'vid' => $vid,
+    'entity_type' => $entity_type,
+    'bundle' => $bundle,
+    'field_name' => $field_name,
+    'group_type' => $group_type,
+    'gid' => $gid,
+    'last_id' => $last_id,
+  );
 
-  // Release the item.
-  $queue->releaseItem($item);
-  return TRUE;
+  $queue = DrupalQueue::get('og_vocab');
+  return $queue->createItem($data);
 }
