Index: boost.admin.inc
===================================================================
--- boost.admin.inc	(revision 570)
+++ boost.admin.inc	(working copy)
@@ -118,6 +118,12 @@
     '#maxlength'     => 255,
     '#description'   => t('The name of a PHP function used to pre-process the contents of each page before writing them out to static files. The function is called with the contents of the page passed as a string argument, and its return value is used as the data written out to the disk.'),
   );
+  $form['advanced']['boost_cache_aliased_path'] = array(
+    '#type'          => 'checkbox',
+    '#title'         => t('Cache aliased paths'),
+    '#default_value' => BOOST_CACHE_ALIASED_PATH,
+    '#description'   => t('If Boost caches a path that is a URL alias it can be pro-active and cache the aliased (system) path as well.  Most of the time this enhances performance, however it may break some paths with internationalization.'),
+  );
   // TODO:
   /*$form['advanced']['boost_post_update_command'] = array(
     '#type'          => 'textfield',
Index: boost.api.inc
===================================================================
--- boost.api.inc	(revision 571)
+++ boost.api.inc	(working copy)
@@ -124,23 +124,25 @@
   $data = rtrim($data) . "\n" . str_replace(array('%cached_at', '%expires_at'), array($cached_at, $expires_at), BOOST_BANNER);
 
   // Execute the pre-process function if one has been defined
-  if (function_exists(BOOST_PRE_PROCESS_FUNCTION))
+  if (function_exists(BOOST_PRE_PROCESS_FUNCTION)) {
     $data = call_user_func(BOOST_PRE_PROCESS_FUNCTION, $data, $path);
+  }
 
   $alias = drupal_get_path_alias($path);
   $path = drupal_get_normal_path($path); // normalize path
+  $has_alias = $alias != $path;
 
   // Create or update the static file as needed
   if (($filename = boost_file_path($path)) && !empty($data)) {
     _boost_mkdir_p(dirname($filename));
-    if (!file_exists($filename) || boost_file_is_expired($filename)) {
+    if ((BOOST_CACHE_ALIASED_PATH || !$has_alias) && (!file_exists($filename) || boost_file_is_expired($filename))) {
       if (file_put_contents($filename, $data) === FALSE) {
         watchdog('boost', t('Unable to write file: %file', array('%file' => $filename)), WATCHDOG_WARNING);
       }
     }
 
     // If a URL alias is defined, create that as a symlink to the actual file
-    if ($alias != $path && ($filename = boost_file_path($alias))) {
+    if ($has_alias && ($filename = boost_file_path($alias))) {
       _boost_mkdir_p(dirname($filename));
       if (!file_exists($filename) || boost_file_is_expired($filename)) {
         if (file_put_contents($filename, $data) === FALSE) {
Index: boost.module
===================================================================
--- boost.module	(revision 570)
+++ boost.module	(working copy)
@@ -35,6 +35,10 @@
 // This is needed since the $user object is already destructed in _boost_ob_handler():
 define('BOOST_USER_ID',              $GLOBALS['user']->uid);
 
+// If the current path is an alias, should we be proactive and cache the
+// aliased (system) path as well:
+define('BOOST_CACHE_ALIASED_PATH',   variable_get('boost_cache_aliased_path', TRUE));
+
 //////////////////////////////////////////////////////////////////////////////
 // BOOST INCLUDES
 
