diff --git a/speedy.module b/speedy.module
index 762ff2c..1d293e8 100644
--- a/speedy.module
+++ b/speedy.module
@@ -8,12 +8,45 @@
  */
 
 /**
+ * Implements hook_FORM_ID_alter().
+ *
+ * @param type $form
+ * @param type $form_state
+ */
+function speedy_form_system_performance_settings_alter(&$form, &$form_state) {
+  $form['bandwidth_optimization']['speedy_js_production'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Use minified JS files created by Speedy'),
+    '#default_value' => variable_get('speedy_js_production'),
+    '#description' => t('Enabling this will replace non-minified Drupal core,
+      contributed, and theme Javascript files with a minfied versions - if they
+      exist.'),
+  );
+  $form['bandwidth_optimization']['speedy_js_file_blacklist'] = array(
+    '#type' => 'textarea',
+    '#title' => t('Blacklisted Javascript files'),
+    '#default_value' => implode("\r", speedy_blacklist()),
+    '#description' => t('List the files that you do not want to minimize.Enter
+      the full path to the file relative to the Drupal root.'),
+    '#states' => array(
+      'visible' => array(
+        ':input[name="speedy_js_production"]' => array('checked' => TRUE),
+      ),
+    ),
+  );
+}
+
+
+
+/**
  * Implements hook_library_alter().
  *
  * If minified core JS exists for the current version of Drupal swap it out.
  */
 function speedy_js_alter(&$javascript) {
-  
+  if (! variable_get('speedy_js_production', FALSE)) {
+    return;
+  }
   // Manage the map of replacements. This is cached so we don't have to hit the
   // file system on each pageload to do the swap.
   static $replacement_map = NULL;
@@ -21,6 +54,7 @@ function speedy_js_alter(&$javascript) {
     if (FALSE && $cache = cache_get('speedy_min_js_files')) {
       $replacement_map = $cache->data;
     }
+
     else {
       $directory = DRUPAL_ROOT . '/' . drupal_get_path('module', 'speedy') . '/js/' . VERSION;
       $directory_strlen = strlen($directory . '/');
@@ -42,4 +76,22 @@ function speedy_js_alter(&$javascript) {
       $javascript[$name]['data'] = $new_path . $data['data'];
     }
   }
-}
\ No newline at end of file
+}
+
+
+/**
+ * Returns a list of blacklisted JS files
+ */
+function speedy_blacklist() {
+  // A list of files and directories to not act on.
+  $blacklist = array(
+    'misc/jquery.js',
+    'misc/farbtastic/farbtastic.js',
+    'misc/jquery.ba-bbq.js',
+    'misc/jquery.cookie.js',
+    'misc/jquery.form.js',
+    'misc/ui',
+  );
+  $blacklist = variable_get('speedy_js_file_blacklist', $blacklist);
+  return $blacklist;
+}
