diff --git a/addons/nodequeue_service/nodequeue_service.inc b/addons/nodequeue_service/nodequeue_service.inc
index 4c7edbf..fdfe4bb 100644
--- a/addons/nodequeue_service/nodequeue_service.inc
+++ b/addons/nodequeue_service/nodequeue_service.inc
@@ -34,6 +34,7 @@ function nodequeue_service_get_nodequeues() {
         $availablequeues[$queue->qid]['show_in_links'] = $queue->show_in_links;
         $availablequeues[$queue->qid]['reference'] = $queue->reference;
         $availablequeues[$queue->qid]['reverse'] = $queue->reverse;
+        $availablequeues[$queue->qid]['unique_items'] = $queue->unique_items;
         $availablequeues[$queue->qid]['subqueues'] = $queue->subqueues;
         $availablequeues[$queue->qid]['types'] = $queue->types;
         $availablequeues[$queue->qid]['roles'] = $queue->roles;
diff --git a/includes/nodequeue.admin.inc b/includes/nodequeue.admin.inc
index ca2898c..8b826ac 100644
--- a/includes/nodequeue.admin.inc
+++ b/includes/nodequeue.admin.inc
@@ -447,6 +447,13 @@ function nodequeue_edit_queue_form($form, &$form_state, $queue) {
     '#description' => t('Ordinarily items are added at the back of the queue, and excess nodes are removed from the front. If checked, this behaviour is reversed: nodes will be added at the front and removed from the back.'),
   );
 
+  $form['unique_items'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Enforce uniqueness'),
+    '#default_value' => $queue->unique_items,
+    '#description' => t('Force an addditional uniqueness check on the items being added in the queue.'),
+  );
+
   $form['link'] = array(
     '#type' => 'textfield',
     '#title' => t('Link "add to queue" text'),
@@ -1068,9 +1075,15 @@ function nodequeue_arrange_subqueue_form_add_submit($form, &$form_state) {
     if (empty($nid)) {
       form_set_error('', t('Please enter a valid node title.'));
     }
+	else if($queue->unique_items && is_numeric($nid)){
+	   if(nodequeue_get_subqueue_position($subqueue->sqid,$nid)){
+	     form_set_error('', t('Item already available in queue.'));
+	   }
+    }
+    else{
+	  nodequeue_subqueue_add($queue, $subqueue, $nid);
+    }
   }
-
-  nodequeue_subqueue_add($queue, $subqueue, $nid);
 }
 
 /**
diff --git a/nodequeue.install b/nodequeue.install
index 09f47f9..08133f4 100644
--- a/nodequeue.install
+++ b/nodequeue.install
@@ -91,6 +91,12 @@ function nodequeue_schema() {
         'size' => 'tiny',
         'default' => 0,
       ),
+      'unique_items' => array(
+        'description' => '',
+        'type' => 'int',
+        'size' => 'tiny',
+        'default' => 0,
+      ),
       'i18n' => array(
         'description' => '',
         'type' => 'int',
@@ -440,3 +446,16 @@ function nodequeue_update_7203() {
   variable_set('menu_rebuild_needed', TRUE);
   drupal_set_message(t('The menus will now be rebuilt.'));
 }
+
+/**
+ * Add new field 'unique_items'.
+ */
+function nodequeue_update_7204() {
+  $field = array(
+    'description' => '',
+    'type' => 'int',
+    'size' => 'tiny',
+    'default' => 0,
+  );
+  db_add_field('nodequeue_queue', 'unique_items', $field);
+}
diff --git a/nodequeue.module b/nodequeue.module
index 71a807a..e8ea514 100644
--- a/nodequeue.module
+++ b/nodequeue.module
@@ -582,7 +582,7 @@ class nodequeue_queue {
   public $subqueue_title = '';
   public $reverse = 0;
   public $insert_at_front = 0;
-
+  public $unique_items = 0;
   // runtime
   public $subqueues = array();
   public $subqueue = NULL;
@@ -1006,6 +1006,7 @@ function nodequeue_save(&$queue) {
     'i18n' => $queue->i18n,
     'reverse' => $queue->reverse,
     'insert_at_front' => $queue->insert_at_front,
+    'unique_items' => $queue->unique_items,
     'reference' => $queue->reference,
   );
 
diff --git a/tests/nodequeue.test b/tests/nodequeue.test
index 4a12ee2..2f5b8b9 100644
--- a/tests/nodequeue.test
+++ b/tests/nodequeue.test
@@ -77,6 +77,7 @@ class NodequeueWebTestCase extends DrupalWebTestCase {
     $queue->new             = TRUE;
     $queue->insert_at_front = 0;
     $queue->reverse         = 0;
+    $queue->unique_items    = 0;
 
     $qid = nodequeue_save($queue);
 
