diff --git a/core/modules/system/system.install b/core/modules/system/system.install
index 6161819..1d925e2 100644
--- a/core/modules/system/system.install
+++ b/core/modules/system/system.install
@@ -177,6 +177,25 @@ function system_requirements($phase) {
     );
   }
 
+  // Check InnoDB configuration.
+  if ($phase == 'runtime' && db_driver() == 'mysql') {
+    $expected = array(
+      'variable_name' => 'innodb_flush_log_at_trx_commit',
+      'value' => 1,
+    );
+    $variable = db_query("SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit'")
+      ->fetchAssoc();
+    if ($variable != $expected) {
+      $requirements['innodb_flush_log_at_trx_commit'] = array(
+        'title' => t('InnoDB configuration'),
+        'value' => t('Potentially slow'),
+        'description' => t('InnoDB variable <a href="http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_flush_log_at_trx_commit">innodb_flush_log_at_trx_commit</a> is set to 1. This can reduce performance as a disk flush is performed after every database write. See the <a href="https://drupal.org/node/51263">Drupal Database tuning handbook page.</a>'),
+        'severity' => REQUIREMENT_WARNING,
+      );
+    }
+  }
+
+
   // Test PHP memory_limit
   $memory_limit = ini_get('memory_limit');
   $requirements['php_memory_limit'] = array(
