Index: boost.install
===================================================================
--- boost.install	(revision 641)
+++ boost.install	(working copy)
@@ -65,52 +65,68 @@
       $root_file = file_put_contents($cache_directory . '/' . variable_get('boost_root_file', '.boost'), $cache_directory);
 
       if ($cache_directory != boost_cache_directory(NULL, FALSE)) {
-        $requirements['boost'] = array(
+        $requirements['boost_default'] = array(
           'title'       => $t('Boost'),
           'description' => $t('!url: is not set to the default(!default). ', array('!url' => l('Cache file path', 'admin/settings/performance'), '!default'    => boost_cache_directory(NULL, FALSE))),
           'severity'    => REQUIREMENT_WARNING,
           'value'       => $t('Cache path'),
         );
       }
-      elseif (!is_dir($cache_directory)) {
-        $requirements['boost'] = array(
+      if (!is_dir($cache_directory)) {
+        $requirements['boost_dir_exists'] = array(
           'title'       => $t('Boost'),
           'description' => $t('!cache_dir: does not exist.', array('!cache_dir' => $cache_directory)),
           'severity'    => REQUIREMENT_ERROR,
           'value'       => $t('Cache path'),
         );
       }
-      elseif ($htaccess && count(explode("%{REQUEST_URI}_%{QUERY_STRING}\.html", $htaccess)) < 5) {
-        $requirements['boost'] = array(
+      elseif (!$root_file || !is_writable($cache_directory)) {
+        $requirements['boost_credentials'] = array(
           'title'       => $t('Boost'),
-          'description' => $t('.htaccess file does not contain the boost specific rewrite rules, or the rewrite rules have changed and they need to be updated.', array()),
+          'description' => $t('Directory %dir credentials - Permissions: %fp. Owner %fo. Group %fg.<br /> Your credentials - Group ID: %gid. User ID: %uid. Current script owner: %user.', array('%dir' => getcwd() . '/' . $cache_directory, '%gid' => getmygid(), '%uid' => getmyuid(), '%user' => get_current_user(), '%fp' => substr(sprintf('%o', fileperms($cache_directory)), -4), '%fo' => fileowner($cache_directory), '%fg' => filegroup($cache_directory) )),
           'severity'    => REQUIREMENT_ERROR,
-          'value'       => $t('.htaccess file'),
+          'value'       => $t('Can not write to filesystem'),
         );
       }
-      elseif (!$root_file || !is_writable($cache_directory)) {
-        $requirements['boost'] = array(
+      if ($htaccess && count(explode("%{REQUEST_URI}_%{QUERY_STRING}\.html", $htaccess)) < 5) {
+        $requirements['boost_htaccess'] = array(
           'title'       => $t('Boost'),
-          'description' => $t('Directory %dir credentials - Permissions: %fp. Owner %fo. Group %fg.<br /> Your credentials - Group ID: %gid. User ID: %uid. Current script owner: %user.', array('%dir' => getcwd() . '/' . $cache_directory, '%gid' => getmygid(), '%uid' => getmyuid(), '%user' => get_current_user(), '%fp' => substr(sprintf('%o', fileperms($cache_directory)), -4), '%fo' => fileowner($cache_directory), '%fg' => filegroup($cache_directory) )),
+          'description' => $t('.htaccess file does not contain the boost specific rewrite rules, or the rewrite rules have changed and they need to be updated.', array()),
           'severity'    => REQUIREMENT_ERROR,
-          'value'       => $t('Can not write to filesystem'),
+          'value'       => $t('.htaccess file'),
         );
       }
-      elseif ((variable_get('statistics_count_content_views', 0) || variable_get('statistics_enable_access_log', 0)) && !file_exists('boost_stats.php')) {
-        $requirements['boost'] = array(
+      if ((variable_get('statistics_count_content_views', 0) || variable_get('statistics_enable_access_log', 0)) && !file_exists('boost_stats.php')) {
+        $requirements['boost_stats'] = array(
           'title'       => $t('Boost'),
           'description' => $t('Copy the boost_stats.php file to your webroot. It should be located in the modules/boost/stats directory.'),
           'severity'    => REQUIREMENT_WARNING,
           'value'       => $t('boost_stats.php missing from root dir'),
         );
       }
-      else {
+      if (variable_get('language_negotiation', LANGUAGE_NEGOTIATION_NONE) == LANGUAGE_NEGOTIATION_PATH) {
+        $requirements['boost_language'] = array(
+          'title'       => $t('Boost'),
+          'description' => $t('Boost is not compatible with '.
+            '<a href="!url">language negotiation</a> set to "language '.
+            'fallback".  An anonymous user with their browser set to a '.
+            "language other than the site's default language will navigate ".
+            "to a non-cached page.  The page will be displayed in the user's ".
+            'browser language.  Boost will cache the non-default-language '.
+            'page. ', array('!url' => url('admin/settings/language/configure'))),
+          'severity'    => REQUIREMENT_ERROR,
+          'value'       => $t('Cannot use "language fallback" language negotiation'),
+        );
+      }
+
+      if (empty($requirements)) {
         $requirements['boost'] = array(
           'title'       => $t('Boost'),
           'severity'    => REQUIREMENT_OK,
-          'value'       => t(''),
+          'value'       => $t('Configured correctly'),
         );
       }
+      
     break;
   }
   return $requirements;
