diff --git a/advagg_css_compress/advagg_css_compress.admin.inc b/advagg_css_compress/advagg_css_compress.admin.inc
index 935847b..18cd036 100644
--- a/advagg_css_compress/advagg_css_compress.admin.inc
+++ b/advagg_css_compress/advagg_css_compress.admin.inc
@@ -23,11 +23,8 @@ function advagg_css_compress_admin_settings_form($form, $form_state) {
     );
   }
 
-  $description = '';
-  $options = array(
-    0 => t('Disabled'),
-    2 => t('YUI'),
-  );
+  list($options, $description) = advagg_css_compress_configuration();
+
   $form['advagg_css_compressor'] = array(
     '#type' => 'radios',
     '#title' => t('File Compression: Select a Compressor'),
diff --git a/advagg_css_compress/advagg_css_compress.advagg.inc b/advagg_css_compress/advagg_css_compress.advagg.inc
index 2148d3d..0e72dc7 100644
--- a/advagg_css_compress/advagg_css_compress.advagg.inc
+++ b/advagg_css_compress/advagg_css_compress.advagg.inc
@@ -33,8 +33,13 @@ function advagg_css_compress_advagg_get_css_aggregate_contents_alter(&$data, $fi
     return;
   }
 
-  if ($aggregate_settings['variables']['advagg_css_compressor'] == 2) {
-    advagg_css_compress_yui_cssmin($data);
+  list(, , , $functions) = advagg_css_compress_configuration();
+
+  if (isset($functions[$aggregate_settings['variables']['advagg_css_compressor']])) {
+    $run = $functions[$aggregate_settings['variables']['advagg_css_compressor']];
+    if (function_exists($run)) {
+      $functions[$aggregate_settings['variables']['advagg_css_compressor']]($data);
+    }
   }
 }
 
diff --git a/advagg_css_compress/advagg_css_compress.module b/advagg_css_compress/advagg_css_compress.module
index 2eeb714..1322e66 100644
--- a/advagg_css_compress/advagg_css_compress.module
+++ b/advagg_css_compress/advagg_css_compress.module
@@ -86,3 +86,29 @@ function advagg_css_compress_advagg_modify_css_pre_render_alter(&$children, &$el
     unset($values);
   }
 }
+
+/**
+ * Generate the js compress configuration.
+ *
+ * @return array
+ *   Array($options, $description, $compressors, $functions).
+ */
+function advagg_css_compress_configuration() {
+  $description = '';
+  $options = array(
+    0 => t('Disabled'),
+    2 => t('YUI'),
+  );
+
+  $compressors = array();
+  $functions = array(
+    2 => 'advagg_css_compress_yui_cssmin',
+  );
+
+  // Allow for other modules to alter this list.
+  $options_desc = array($options, $description);
+  drupal_alter('advagg_css_compress_configuration', $options_desc, $compressors, $functions);
+  list($options, $description) = $options_desc;
+
+  return array($options, $description, $compressors, $functions);
+}
diff --git a/advagg_ext_compress/advagg_ext_compress.module b/advagg_ext_compress/advagg_ext_compress.module
index 2b049a7..7d3f3b1 100644
--- a/advagg_ext_compress/advagg_ext_compress.module
+++ b/advagg_ext_compress/advagg_ext_compress.module
@@ -35,8 +35,10 @@ function advagg_ext_compress_menu() {
 function advagg_ext_compress_advagg_js_compress_configuration_alter(&$options_desc, &$compressors, &$functions) {
   list($options, $description) = $options_desc;
 
-  end($options);
-  $key = key($options) + 1;
+  $key = 10;
+  while (isset($options[$key])) {
+    $key++;
+  }
   $options[$key] = t('AdvAgg Command Line Compressor');
   $compressors[$key] = 'advagg_cmdline';
   $functions[$key] = 'advagg_ext_compress_js_compress';
@@ -44,6 +46,22 @@ function advagg_ext_compress_advagg_js_compress_configuration_alter(&$options_de
   $options_desc = array($options, $description);
 }
 
+/**
+ * Implements hook_advagg_css_compress_configuration_alter().
+ */
+function advagg_ext_compress_advagg_css_compress_configuration_alter(&$options_desc, &$compressors, &$functions) {
+  list($options, $description) = $options_desc;
+
+  $key = 10;
+  while (isset($options[$key])) {
+    $key++;
+  }
+  $options[$key] = t('AdvAgg Command Line Compressor');
+  $functions[$key] = 'advagg_ext_compress_css_compress';
+
+  $options_desc = array($options, $description);
+}
+
 // Helper functions.
 /**
  * Compress Javascript using via command line.
diff --git a/advagg_js_compress/advagg_js_compress.advagg.inc b/advagg_js_compress/advagg_js_compress.advagg.inc
index 85eafc0..b1b3606 100644
--- a/advagg_js_compress/advagg_js_compress.advagg.inc
+++ b/advagg_js_compress/advagg_js_compress.advagg.inc
@@ -339,10 +339,15 @@ function advagg_js_compress_prep(&$contents, $filename, array $aggregate_setting
     if ($compressor == 1) {
       advagg_js_compress_jsminplus($contents, $log_errors);
     }
-    else {
+    elseif (isset($functions[$compressor])) {
       list(, , , $functions) = advagg_js_compress_configuration();
       $run = $functions[$compressor];
-      $run($contents);
+      if (function_exists($run)) {
+        $run($contents);
+      }
+    }
+    else {
+      return;
     }
 
     // Ensure that $contents ends with ; or }.
