Index: includes/handlers.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/skinr/includes/Attic/handlers.inc,v
retrieving revision 1.2.2.1
diff -u -p -r1.2.2.1 handlers.inc
--- includes/handlers.inc	29 Dec 2009 08:26:27 -0000	1.2.2.1
+++ includes/handlers.inc	10 Sep 2010 04:36:34 -0000
@@ -75,6 +75,7 @@ function skinr_submit_handler(&$form, $f
         $hook  = $module;
         $key   = skinr_handler('form_index_handler', 'submit', $form_settings['index_handler'], $form, $form_state);
         $value = array();
+        $pre_edit_skin = skinr_get($theme_name, $hook , $key);
   
         if (is_array($theme['widgets'])) {
           foreach ($theme['widgets'] as $skin_id => $skin_value) {
@@ -84,13 +85,19 @@ function skinr_submit_handler(&$form, $f
             }
           }
         }
-  
+
         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($pre_edit_skin['_additional'])) {
+            //The user didn't change the classes, he just didn't have access to set them.
+            $value['_additional'] = $pre_edit_skin['_additional'];
+          }
+        }      
   
         if (isset($theme['advanced']['_template'])) {
           $theme['advanced']['_template'] = trim($theme['advanced']['_template']);
@@ -98,12 +105,19 @@ function skinr_submit_handler(&$form, $f
             $value['_template'] = $theme['advanced']['_template'];
           }
         }
+        else{
+          //We'll add the fix to the template option too, because this is also control by these permission
+          if (!user_access('access skinr classes') && isset($pre_edit_skin['_template'])) {
+            //The user didn't change the template option, he just didn't have access to it.
+            $value['_template'] = $pre_edit_skin['_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);
       }
     }
