diff --git a/includes/nodequeue.admin.inc b/includes/nodequeue.admin.inc
index 7efa512..f074e3d 100644
--- a/includes/nodequeue.admin.inc
+++ b/includes/nodequeue.admin.inc
@@ -35,6 +35,13 @@ function nodequeue_admin_settings($form, &$form_state) {
       If you wish to have fewer views, you can disable this option and use a single view with an argument for the qid."),
     '#default_value' => variable_get('nodequeue_view_per_queue', 1),
   );
+  $form['nodequeue_save_cache_clear'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Clears Drupal\'s cache each time you save configuration'),
+    '#description' => t("Nodequeue does not hook into any cache clearing mechanism. \n
+      If you do not clear cache periodically and need nodequeue changes to propagate automatically use this option."),
+    '#default_value' => variable_get('nodequeue_save_cache_clear', 0),
+  );
   return system_settings_form($form);
 }
 
@@ -620,6 +627,9 @@ function nodequeue_edit_queue_form_submit($formid, &$form_state) {
   else {
     drupal_set_message(t('The queue has been updated.'));
   }
+
+  nodequeue_cache_clearing();
+
   $form_state['redirect'] = 'admin/structure/nodequeue';
 }
 
@@ -936,6 +946,8 @@ function nodequeue_arrange_subqueue_form_submit($form, &$form_state, $reverse =
   $sqid = $form['nodes']['#subqueue']['sqid'];
   nodequeue_save_subqueue_order($nodes, $qid, $sqid);
 
+  nodequeue_cache_clearing();
+
   drupal_set_message(t('@message', array('@message' => $message)));
 }
 
@@ -1017,6 +1029,8 @@ function nodequeue_save_subqueue_order($nodes, $qid, $sqid) {
     nodequeue_check_subqueue_size($queue, $subqueue);
   }
 
+  nodequeue_cache_clearing();
+
   return array(NODEQUEUE_OK, 'The queue has been updated.');
 }
 
@@ -1119,3 +1133,14 @@ function _nodequeue_autocomplete($sqid, $string) {
   $nodes = nodequeue_api_autocomplete($queue, $subqueue, $string);
   return $nodes;
 }
+
+/**
+ * Cache clearing on saving node.
+ */
+function nodequeue_cache_clearing() {
+  // Cache clearing mechanism added (only works if clearing is set)
+  if( variable_get('nodequeue_save_cache_clear') == 1) {
+    watchdog('NodeQueue', 'Drupal\'s cache cleared due to NodeQueue\'s changes. This setting can be changed.', NULL, WATCHDOG_INFO);
+    cache_clear_all();
+  }
+}
