diff --git a/includes/form.inc b/includes/form.inc
index 2afaa6893b1def3d122c80119a1ec9824739acb0..07df6d7820ca3c168bedfc7893f2cf5421a11428 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -176,8 +176,6 @@ function drupal_validate_form($form_id, $form, $callback = NULL) {
 function drupal_submit_form($form_id, $form, $callback = NULL) {
   global $form_values;
   $default_args = array($form_id, &$form_values);
-  // Prevent system module forms (system/theme settings) from saving certain form fields to the variables table.
-  unset($GLOBALS['form_values']['submit'], $GLOBALS['form_values']['reset'], $GLOBALS['form_values']['form_id']);
 
   if (isset($form['#submit'])) {
     foreach ($form['#submit'] as $function => $args) {
diff --git a/modules/system.module b/modules/system.module
index e38b329a7541935906e3c9f704f5507b280a2611..7e000f9f0dea904263a3f60e542e615e1df8a6c4 100644
--- a/modules/system.module
+++ b/modules/system.module
@@ -760,6 +760,9 @@ function system_theme_settings_submit($form_id, $values) {
   $op = isset($_POST['op']) ? $_POST['op'] : '';
   $key = $values['var'];
 
+  // Exclude unnecessary elements.
+  unset($values['var'], $values['submit'], $values['reset'], $values['form_id']);
+
   if ($op == t('Reset to defaults')) {
     variable_del($key);
     drupal_set_message(t('The configuration options have been reset to their default values.'));
@@ -786,6 +789,9 @@ function system_settings_form_submit($form_id, $values) {
     $values['clean_url'] = 0;
   }
 
+  // Exclude unnecessary elements.
+  unset($values['submit'], $values['reset'], $values['form_id']);
+
   foreach ($values as $key => $value) {
     if ($op == t('Reset to defaults')) {
       variable_del($key);
diff --git a/modules/system/system.module b/modules/system/system.module
index e38b329a7541935906e3c9f704f5507b280a2611..7e000f9f0dea904263a3f60e542e615e1df8a6c4 100644
--- a/modules/system/system.module
+++ b/modules/system/system.module
@@ -760,6 +760,9 @@ function system_theme_settings_submit($form_id, $values) {
   $op = isset($_POST['op']) ? $_POST['op'] : '';
   $key = $values['var'];
 
+  // Exclude unnecessary elements.
+  unset($values['var'], $values['submit'], $values['reset'], $values['form_id']);
+
   if ($op == t('Reset to defaults')) {
     variable_del($key);
     drupal_set_message(t('The configuration options have been reset to their default values.'));
@@ -786,6 +789,9 @@ function system_settings_form_submit($form_id, $values) {
     $values['clean_url'] = 0;
   }
 
+  // Exclude unnecessary elements.
+  unset($values['submit'], $values['reset'], $values['form_id']);
+
   foreach ($values as $key => $value) {
     if ($op == t('Reset to defaults')) {
       variable_del($key);