diff --git a/core/state-manager.js b/core/state-manager.js
index f6389a8e4a3fa7dac1ba8123d400f0f30839aeb6..3d38ebd1f6cc7b307aa371dabe877f2800047960 100644
--- a/core/state-manager.js
+++ b/core/state-manager.js
@@ -161,6 +161,22 @@ stateManager._updateTab = function (details) {
     }
 };
 
+stateManager._stripMetadata = function (requestDetails) {
+
+    for (let i = 0; i < requestDetails.requestHeaders.length; ++i) {
+
+        if (requestDetails.requestHeaders[i].name === 'Origin') {
+            requestDetails.requestHeaders.splice(i, 1);
+        } else if (requestDetails.requestHeaders[i].name === 'Referer') {
+            requestDetails.requestHeaders.splice(i, 1);
+        }
+    }
+
+    return {
+        'requestHeaders': requestDetails.requestHeaders
+    };
+};
+
 stateManager._handleStorageChanged = function (changes) {
 
     if ('showIconBadge' in changes) {
@@ -174,6 +190,24 @@ stateManager._handleStorageChanged = function (changes) {
             });
         }
     }
+
+    if ('stripMetadata' in changes) {
+
+        let onBeforeSendHeaders;
+
+        onBeforeSendHeaders = chrome.webRequest.onBeforeSendHeaders;
+
+        onBeforeSendHeaders.removeListener(stateManager._stripMetadata, {
+            'urls': stateManager.validHosts
+        }, [BLOCKING_ACTION, REQUEST_HEADERS]);
+
+        if (changes.stripMetadata.newValue !== false) {
+            
+            onBeforeSendHeaders.addListener(stateManager._stripMetadata, {
+                'urls': stateManager.validHosts
+            }, [BLOCKING_ACTION, REQUEST_HEADERS]);
+        }
+    }
 };
 
 stateManager._removeIconBadgeFromTab = function (tab) {
@@ -241,19 +275,8 @@ chrome.webRequest.onBeforeRedirect.addListener(function (requestDetails) {
 
 }, {'urls': ['*://*/*']});
 
-chrome.webRequest.onBeforeSendHeaders.addListener(function (requestDetails) {
-
-    for (let i = 0; i < requestDetails.requestHeaders.length; ++i) {
-
-        if (requestDetails.requestHeaders[i].name === 'Origin') {
-            requestDetails.requestHeaders.splice(i, 1);
-        } else if (requestDetails.requestHeaders[i].name === 'Referer') {
-            requestDetails.requestHeaders.splice(i, 1);
-        }
-    }
-
-    return {requestHeaders: requestDetails.requestHeaders};
-
-}, {urls: stateManager.validHosts}, [BLOCKING_ACTION, REQUEST_HEADERS]);
+chrome.webRequest.onBeforeSendHeaders.addListener(stateManager._stripMetadata, {
+    'urls': stateManager.validHosts
+}, [BLOCKING_ACTION, REQUEST_HEADERS]);
 
 chrome.storage.onChanged.addListener(stateManager._handleStorageChanged);
diff --git a/pages/options/options.html b/pages/options/options.html
index 8ecc2d01c15d418425a8af86dc51f23b5941f96e..e564648d0aed2d5010c6aa419659bea692b6247b 100644
--- a/pages/options/options.html
+++ b/pages/options/options.html
@@ -78,7 +78,7 @@
 
                 <label class="label-checkbox">
 
-                    <input class="input-checkbox" data-option="stripMetadata" type="checkbox" disabled>
+                    <input class="input-checkbox" data-option="stripMetadata" type="checkbox">
                     <span data-i18n-content="stripMetadataTitle"></span>
 
                 </label>