diff --git a/includes/install.core.inc b/includes/install.core.inc
index 38ad724..beddb79 100644
--- a/includes/install.core.inc
+++ b/includes/install.core.inc
@@ -1493,7 +1493,8 @@ function install_configure_form($form, &$form_state, &$install_state) {
   // especially out of place on the last page of the installer, where it would
   // distract from the message that the Drupal installation has completed
   // successfully.)
-  if (empty($_POST) && (!drupal_verify_install_file(DRUPAL_ROOT . '/' . $settings_file, FILE_EXIST|FILE_READABLE|FILE_NOT_WRITABLE) || !drupal_verify_install_file(DRUPAL_ROOT . '/' . $settings_dir, FILE_NOT_WRITABLE, 'dir'))) {
+  $ignore_site_directory_permissions = variable_get("ignore_site_directory_permissions", FALSE);
+  if (empty($_POST) && (!$ignore_site_directory_permissions && (!drupal_verify_install_file(DRUPAL_ROOT . '/' . $settings_file, FILE_EXIST|FILE_READABLE|FILE_NOT_WRITABLE) || !drupal_verify_install_file(DRUPAL_ROOT . '/' . $settings_dir, FILE_NOT_WRITABLE, 'dir')))) {
     drupal_set_message(st('All necessary changes to %dir and %file have been made, so you should remove write permissions to them now in order to avoid security risks. If you are unsure how to do so, consult the <a href="@handbook_url">online handbook</a>.', array('%dir' => $settings_dir, '%file' => $settings_file, '@handbook_url' => 'http://drupal.org/server-permissions')), 'warning');
   }
 
diff --git a/modules/system/system.install b/modules/system/system.install
index 43c7383..e6b2ce5 100644
--- a/modules/system/system.install
+++ b/modules/system/system.install
@@ -228,14 +228,27 @@ function system_requirements($phase) {
     }
   }
 
-  // Test settings.php file writability
+  // Test settings.php file writability.
   if ($phase == 'runtime') {
-    $conf_dir = drupal_verify_install_file(conf_path(), FILE_NOT_WRITABLE, 'dir');
-    $conf_file = drupal_verify_install_file(conf_path() . '/settings.php', FILE_EXIST|FILE_READABLE|FILE_NOT_WRITABLE);
+    // Allow system administrators to ignore permissions hardening for the site
+    // directory. This allows additional files in the site directory to be
+    // updated when they are managed in a version control system.
+    if (!variable_get("ignore_site_directory_permissions", FALSE)) {
+      $conf_dir = drupal_verify_install_file(conf_path(), FILE_NOT_WRITABLE, 'dir');
+      $conf_file = drupal_verify_install_file(conf_path() . '/settings.php', FILE_EXIST|FILE_READABLE|FILE_NOT_WRITABLE);
+      $message = $t('Not protected');
+      $severity = REQUIREMENT_ERROR;
+    }
+    else {
+      $conf_dir = FALSE;
+      $conf_file = FALSE;
+      $message = $t('Protection disabled');
+      $severity = REQUIREMENT_WARNING;
+    }
     if (!$conf_dir || !$conf_file) {
       $requirements['settings.php'] = array(
-        'value' => $t('Not protected'),
-        'severity' => REQUIREMENT_ERROR,
+        'value' => $message,
+        'severity' => $severity,
         'description' => '',
       );
       if (!$conf_dir) {
diff --git a/sites/default/default.settings.php b/sites/default/default.settings.php
index 580cc38..31e295a 100644
--- a/sites/default/default.settings.php
+++ b/sites/default/default.settings.php
@@ -551,3 +551,18 @@ $conf['404_fast_html'] = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
  * Remove the leading hash signs to disable.
  */
 # $conf['allow_authorize_operations'] = FALSE;
+
+/**
+ * Override file system permissions hardening.
+ *
+ * The system module will periodically check the permissions of your site
+ * site directory to ensure that they are not writable by the website user.
+ * For sites that are managed with a version control system, this can cause
+ * problems when files in that directory (such as a "settings.inc" containing
+ * additional configuration) when the files are updated, as the user pulling
+ * in the changes won't have permissions to modify files in the directory.
+ *
+ * Remove the leading hash sign to disable permissions hardening.
+ */
+# $conf['ignore_site_directory_permissions'] = TRUE;
+
