diff --git a/advagg.install b/advagg.install
index 0d05a95..6b78655 100644
--- a/advagg.install
+++ b/advagg.install
@@ -27,7 +27,11 @@ function advagg_enable() {
  * Implementation of hook_disable().
  */
 function advagg_disable() {
-  cache_clear_all('*', 'cache_advagg', TRUE);
+  // Flush advagg caches.
+  $cache_tables = advagg_flush_caches();
+  foreach ($cache_tables as $table) {
+    cache_clear_all('*', $table, TRUE);
+  }
 }
 
 /**
@@ -308,7 +312,7 @@ function advagg_check_missing_handler() {
       $ret['advagg_async_generation'] = array(
         'title'       => $t('Adv CSS/JS Agg - Asynchronous Mode'),
         'severity'    => REQUIREMENT_WARNING,
-        'value'       => $t('Set to FALSE.'),
+        'value'       => variable_get('advagg_async_generation', FALSE) ? $t('Set to TRUE.') : $t('Set to FALSE.'),
         'description' => $t('Check your <a href="@cdn">CDN settings</a>; request is not coming back when routed through the CDN.', array('@cdn' => url('admin/settings/cdn'))),
       );
     }
diff --git a/advagg.module b/advagg.module
index 8988d57..e5c85b9 100644
--- a/advagg.module
+++ b/advagg.module
@@ -119,14 +119,14 @@ function advagg_menu() {
   $items[$css_path . '/%'] = array(
     'page callback' => 'advagg_missing_css',
     'type' => MENU_CALLBACK,
-    'access arguments' => array('access content'),
+    'access callback' => TRUE,
     'file path' => $file_path,
     'file' => 'advagg.missing.inc',
   );
   $items[$js_path . '/%'] = array(
     'page callback' => 'advagg_missing_js',
     'type' => MENU_CALLBACK,
-    'access arguments' => array('access content'),
+    'access callback' => TRUE,
     'file path' => $file_path,
     'file' => 'advagg.missing.inc',
   );
@@ -1397,6 +1397,7 @@ function advagg_process_css($css = NULL, $noagg = FALSE) {
       }
       $preprocess_files = advagg_css_js_file_builder('css', $files);
       $good = TRUE;
+
       foreach ($preprocess_files as $preprocess_file => $extra) {
         if ($extra !== FALSE && is_array($extra)) {
           $prefix = $extra['prefix'];
@@ -1779,6 +1780,7 @@ function advagg_css_js_file_builder($type, $files, $counter = '', $force = FALSE
   }
   $output = array();
   $locks = array();
+  $cacheable = TRUE;
   foreach ($filenames as $info) {
     $filename = $info['filename'];
     $files = $info['files'];
@@ -1842,21 +1844,32 @@ function advagg_css_js_file_builder($type, $files, $counter = '', $force = FALSE
       // necessary.
       drupal_alter('advagg_' . $type, $data, $files, $bundle_md5);
 
+      // If data is empty then do not include this bundle in the final output.
+      if (empty($data)) {
+        if (function_exists('lock_release')) {
+          lock_release($lock_name);
+        }
+        continue;
+      }
+
       // Create the advagg_$type/ within the files folder.
       file_check_directory($file_type_path, FILE_CREATE_DIRECTORY);
 
       // Write file. default function called: advagg_file_saver
       $function = variable_get('advagg_file_save_function', ADVAGG_FILE_SAVE_FUNCTION);
       $good = $function($data, $filepath, $force, $type);
-      if (!$good) {
-        $output[$filepath] = FALSE;
-        continue;
-      }
 
       // Release lock.
       if (function_exists('lock_release')) {
         lock_release($lock_name);
       }
+
+      // If file save was not good then downgrade to non aggregrated mode.
+      if (!$good) {
+        $output[$filepath] = FALSE;
+        $cacheable = FALSE;
+        continue;
+      }
     }
     $output[$filepath] = array('prefix' => $prefix, 'suffix' => $suffix);
   }
@@ -1874,7 +1887,7 @@ function advagg_css_js_file_builder($type, $files, $counter = '', $force = FALSE
   }
 
   // Cache the output
-  if (!$force) {
+  if (!$force && $cacheable) {
     cache_set($cached_data_key, $output, 'cache_advagg_bundle_reuse', CACHE_TEMPORARY);
   }
 
@@ -1973,6 +1986,8 @@ function advagg_missing_fast404($msg = '') {
     header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');
     header('X-AdvAgg: Failed Validation. ' . $msg);
   }
+
+  print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">' . "\n";
   print '<html>';
   print '<head><title>404 Not Found</title></head>';
   print '<body><h1>Not Found</h1>';
diff --git a/advagg_bundler/advagg_bundler.install b/advagg_bundler/advagg_bundler.install
index 7ff13dd..2c77af8 100644
--- a/advagg_bundler/advagg_bundler.install
+++ b/advagg_bundler/advagg_bundler.install
@@ -9,7 +9,22 @@
  * Implementation of hook_enable().
  */
 function advagg_bundler_enable() {
+  // Flush advagg caches.
+  $cache_tables = advagg_flush_caches();
+  foreach ($cache_tables as $table) {
+    cache_clear_all('*', $table, TRUE);
+  }
+}
 
+/**
+ * Implementation of hook_disable().
+ */
+function advagg_bundler_disable() {
+  // Flush advagg caches.
+  $cache_tables = advagg_flush_caches();
+  foreach ($cache_tables as $table) {
+    cache_clear_all('*', $table, TRUE);
+  }
 }
 
 /**
diff --git a/advagg_css_compress/advagg_css_compress.install b/advagg_css_compress/advagg_css_compress.install
index 684afae..7e601c4 100644
--- a/advagg_css_compress/advagg_css_compress.install
+++ b/advagg_css_compress/advagg_css_compress.install
@@ -9,6 +9,22 @@
  * Implementation of hook_enable().
  */
 function advagg_css_compress_enable() {
+  // Flush advagg caches.
+  $cache_tables = advagg_flush_caches();
+  foreach ($cache_tables as $table) {
+    cache_clear_all('*', $table, TRUE);
+  }
+}
+
+/**
+ * Implementation of hook_disable().
+ */
+function advagg_css_compress_disable() {
+  // Flush advagg caches.
+  $cache_tables = advagg_flush_caches();
+  foreach ($cache_tables as $table) {
+    cache_clear_all('*', $table, TRUE);
+  }
 }
 
 /**
@@ -18,6 +34,11 @@ function advagg_css_compress_uninstall() {
   // Remove variables.
   variable_del('advagg_css_compress_preserve_css');
 
+  // Flush advagg caches.
+  $cache_tables = advagg_flush_caches();
+  foreach ($cache_tables as $table) {
+    cache_clear_all('*', $table, TRUE);
+  }
 }
 
 /**
diff --git a/advagg_js_compress/advagg_js_compress.install b/advagg_js_compress/advagg_js_compress.install
index e9732b3..9a7aa03 100644
--- a/advagg_js_compress/advagg_js_compress.install
+++ b/advagg_js_compress/advagg_js_compress.install
@@ -9,11 +9,28 @@
  * Implementation of hook_enable().
  */
 function advagg_js_compress_enable() {
+  // Flush advagg caches.
+  $cache_tables = advagg_flush_caches();
+  foreach ($cache_tables as $table) {
+    cache_clear_all('*', $table, TRUE);
+  }
+
   // Check runtime requirements
   register_shutdown_function('advagg_js_compress_requirements', 'runtime');
 }
 
 /**
+ * Implementation of hook_disable().
+ */
+function advagg_js_compress_disable() {
+  // Flush advagg caches.
+  $cache_tables = advagg_flush_caches();
+  foreach ($cache_tables as $table) {
+    cache_clear_all('*', $table, TRUE);
+  }
+}
+
+/**
  * Implementation of hook_uninstall().
  */
 function advagg_js_compress_uninstall() {
diff --git a/advagg_js_compress/advagg_js_compress.module b/advagg_js_compress/advagg_js_compress.module
index ab95da2..f33eadd 100644
--- a/advagg_js_compress/advagg_js_compress.module
+++ b/advagg_js_compress/advagg_js_compress.module
@@ -36,7 +36,7 @@ function advagg_js_compress_menu() {
   $items['advagg/js_compress_test_file'] = array(
     'page callback' => 'advagg_js_compress_test_file',
     'type' => MENU_CALLBACK,
-    'access arguments' => array('access content'),
+    'access callback' => TRUE,
   );
   $items['admin/settings/advagg/js-compress'] = array(
     'title' => 'JS Compression',
