diff --git a/src/contentScripts/communityConsole/start.js b/src/contentScripts/communityConsole/start.js
index 063f58a..cc54540 100644
--- a/src/contentScripts/communityConsole/start.js
+++ b/src/contentScripts/communityConsole/start.js
@@ -2,15 +2,11 @@
 import {getOptions} from '../../common/optionsUtils.js';
 
 import FlattenThreadsReplyActionHandler from './flattenThreads/replyActionHandler.js';
-import ThreadPageDesignWarning from './threadPageDesignWarning.js';
 import WorkflowsImport from './workflows/import.js';
 
-const SMEI_RCE_THREAD_INTEROP = 22;
-
 getOptions(null).then(options => {
   /* IMPORTANT NOTE: Remember to change this when changing the "ifs" below!! */
-  if (options.loaddrafts || options.interopthreadpage ||
-      options.fixpekb269560789) {
+  if (options.fixpekb269560789) {
     var startup =
         JSON.parse(document.querySelector('html').getAttribute('data-startup'));
 
@@ -20,31 +16,12 @@
       }
     }
 
-    if (options.loaddrafts) {
-      startup[4][13] = true;
-    }
-
-    if (options.interopthreadpage) {
-      var index = startup[1][6].indexOf(SMEI_RCE_THREAD_INTEROP);
-
-      switch (options.interopthreadpage_mode) {
-        case 'previous':
-          if (index > -1) startup[1][6].splice(index, 1);
-          break;
-
-        case 'next':
-          if (index == -1) startup[1][6].push(SMEI_RCE_THREAD_INTEROP);
-          break;
-      }
-    }
-
     document.querySelector('html').setAttribute(
         'data-startup', JSON.stringify(startup));
   }
 
   // Initialized here instead of in main.js so the first event is received if it
   // happens when the page loads.
-  window.TWPTThreadPageDesignWarning = new ThreadPageDesignWarning();
   window.TWPTWorkflowsImport = new WorkflowsImport();
 
   if (options.ccdarktheme) {
