diff --git includes/handlers.inc includes/handlers.inc
index e9d02c3..ed3f0bc 100644
--- includes/handlers.inc
+++ includes/handlers.inc
@@ -75,7 +75,8 @@ function skinr_submit_handler(&$form, $form_state, $module, $form_settings) {
         $hook  = $module;
         $key   = skinr_handler('form_index_handler', 'submit', $form_settings['index_handler'], $form, $form_state);
         $value = array();
-  
+        $saved = skinr_get($theme_name, $hook , $key);
+
         if (is_array($theme['widgets'])) {
           foreach ($theme['widgets'] as $skin_id => $skin_value) {
             $skin_value = is_array($skin_value) ? _skinr_array_strip_empty($skin_value) : $skin_value;
@@ -84,26 +85,41 @@ function skinr_submit_handler(&$form, $form_state, $module, $form_settings) {
             }
           }
         }
-  
+
         if (isset($theme['advanced']['_additional'])) {
           $theme['advanced']['_additional'] = trim($theme['advanced']['_additional']);
           if (!empty($theme['advanced']['_additional'])) {
             $value['_additional'] = $theme['advanced']['_additional'];
           }
         }
-  
+        else {
+          if (!user_access('access skinr classes') && isset($saved['_additional'])) {
+            // The user didn't have access to change this. Ensure the existing
+            // custom classes remain by populating the element with the
+            // previously saved values.
+            $value['_additional'] = $saved['_additional'];
+          }
+        }
         if (isset($theme['advanced']['_template'])) {
           $theme['advanced']['_template'] = trim($theme['advanced']['_template']);
           if (!empty($theme['advanced']['_template'])) {
             $value['_template'] = $theme['advanced']['_template'];
           }
         }
-  
+        else {
+          if (!user_access('access skinr classes') && isset($saved['_template'])) {
+            // The user didn't have access to change this. Ensure the existing
+            // template selection remains by populating the element with the
+            // previously saved values.
+            $value['_template'] = $saved['_template'];
+          }
+        }
+
         if (empty($key)) {
           // We didn't receive a valid key, so raise an error
           drupal_set_message(t("Skinr settings weren't saved due to an error."), 'error');
         }
-  
+
         skinr_set($theme_name, $hook, $key, $value);
       }
     }
diff --git modules/panels.skinr.inc modules/panels.skinr.inc
index 9803dd4..62ca396 100644
--- modules/panels.skinr.inc
+++ modules/panels.skinr.inc
@@ -216,6 +216,7 @@ function panels_skinr_submit_handler_settings(&$form, $form_state, $module, $for
       // and use that for reference on the final submit? If it works...
 
       $value = array();
+      $saved = skinr_get($theme_name, $hook , $key);
 
       if (is_array($theme['widgets'])) {
         foreach ($theme['widgets'] as $skin_id => $skin_value) {
@@ -229,6 +230,14 @@ function panels_skinr_submit_handler_settings(&$form, $form_state, $module, $for
           $value['_additional'] = $theme['advanced']['_additional'];
         }
       }
+      else {
+        if (!user_access('access skinr classes') && isset($saved['_additional'])) {
+          // The user didn't have access to change this. Ensure the existing
+          // custom classes remain by populating the element with the
+          // previously saved values.
+          $value['_additional'] = $saved['_additional'];
+        }
+      }
 
       if (isset($theme['advanced']['_template'])) {
         $theme['advanced']['_template'] = trim($theme['advanced']['_template']);
@@ -236,6 +245,14 @@ function panels_skinr_submit_handler_settings(&$form, $form_state, $module, $for
           $value['_template'] = $theme['advanced']['_template'];
         }
       }
+      else {
+        if (!user_access('access skinr classes') && isset($saved['_template'])) {
+          // The user didn't have access to change this. Ensure the existing
+          // template selection remains by populating the element with the
+          // previously saved values.
+          $value['_template'] = $saved['_template'];
+        }
+      }
 
       if (empty($key)) {
         // We didn't receive a valid key, so raise an error.
diff --git modules/views.skinr.inc modules/views.skinr.inc
index 14dabfc..404638d 100644
--- modules/views.skinr.inc
+++ modules/views.skinr.inc
@@ -187,6 +187,7 @@ function views_skinr_submit_handler_display(&$form, $form_state, $module, $form_
       $hook  = $module;
       $key   = skinr_handler('form_index_handler', 'submit', $form_settings['index_handler'], $form, $form_state);
       $value = array();
+      $saved = skinr_get($theme_name, $hook , $key);
 
       if (is_array($theme['widgets'])) {
         foreach ($theme['widgets'] as $skin_id => $skin_value) {
@@ -200,6 +201,14 @@ function views_skinr_submit_handler_display(&$form, $form_state, $module, $form_
           $value['_additional'] = $theme['advanced']['_additional'];
         }
       }
+      else {
+        if (!user_access('access skinr classes') && isset($saved['_additional'])) {
+          // The user didn't have access to change this. Ensure the existing
+          // custom classes remain by populating the element with the
+          // previously saved values.
+          $value['_additional'] = $saved['_additional'];
+        }
+      }
 
       if (isset($theme['advanced']['_template'])) {
         $theme['advanced']['_template'] = trim($theme['advanced']['_template']);
@@ -207,6 +216,14 @@ function views_skinr_submit_handler_display(&$form, $form_state, $module, $form_
           $value['_template'] = $theme['advanced']['_template'];
         }
       }
+      else {
+        if (!user_access('access skinr classes') && isset($saved['_template'])) {
+          // The user didn't have access to change this. Ensure the existing
+          // template selection remains by populating the element with the
+          // previously saved values.
+          $value['_template'] = $saved['_template'];
+        }
+      }
 
       if (empty($key)) {
         // We didn't receive a valid key, so raise an error
