diff --git a/includes/webform.admin.inc b/includes/webform.admin.inc
index a30960e..c84c711 100644
--- a/includes/webform.admin.inc
+++ b/includes/webform.admin.inc
@@ -155,11 +155,14 @@ function webform_admin_settings() {
 
   $form = system_settings_form($form);
   $form['#theme'] = 'webform_admin_settings';
-  $form['#submit'][] = 'webform_admin_settings_submit';
+  array_unshift($form['#submit'], 'webform_admin_settings_submit');
 
   return $form;
 }
 
+/**
+ * Submit handler for the webform_admin_settings() form.
+ */
 function webform_admin_settings_submit($form, &$form_state) {
   $disabled_components = array();
   foreach ($form_state['values']['components'] as $name => $enabled) {
@@ -167,17 +170,18 @@ function webform_admin_settings_submit($form, &$form_state) {
       $disabled_components[] = $name;
     }
   }
-  variable_set('webform_disabled_components', $disabled_components);
+  // Update $form_state and let system_settings_form_submit() handle saving.
+  $form_state['values']['webform_disabled_components'] = $disabled_components;
+  unset($form_state['values']['components']);
 
-  $webform_types = array();
-  foreach ($form_state['values']['node_types'] as $type) {
-    if ($type) {
-      $webform_types[] = $type;
-    }
-  }
-  variable_set('webform_node_types', $webform_types);
+  // Change the name of the node type variable and clean it up.
+  $form_state['values']['webform_node_types'] = array_keys(array_filter($form_state['values']['node_types']));
+  unset($form_state['values']['node_types']);
 }
 
+/**
+ * Theme the output of the webform_admin_settings() form.
+ */
 function theme_webform_admin_settings($form) {
   // Format the components into a table.
   foreach (element_children($form['components']) as $key) {
diff --git a/webform.install b/webform.install
index e45d718..e6e0409 100644
--- a/webform.install
+++ b/webform.install
@@ -1344,6 +1344,16 @@ function webform_update_6326() {
 }
 
 /**
+ * Remove unused Webform variables.
+ */
+function webform_update_6327() {
+  $ret = array();
+  variable_del('node_types');
+  variable_del('components');
+  return $ret;
+}
+
+/**
  * Recursively delete all files and folders in the specified filepath, then
  * delete the containing folder.
  *
