diff -Naur lsr/src/AEEvent/SettingChange.py /home/eitan/cvs/gnome2/lsr/src/AEEvent/SettingChange.py
--- lsr/src/AEEvent/SettingChange.py	2006-11-29 11:37:12.000000000 -0800
+++ /home/eitan/cvs/gnome2/lsr/src/AEEvent/SettingChange.py	2006-11-29 11:28:51.000000000 -0800
@@ -40,7 +40,7 @@
   @type kwargs: dictionary
   '''
   Constants.registerEventType('SettingChange', False)
-  def __init__(self, aid, source, state, name, value, **kwargs):
+  def __init__(self, aid, source, state, name, value, sensitive, **kwargs):
     '''
     Stores important references.
     
@@ -63,6 +63,7 @@
     self.state = state
     self.name = name
     self.value = value
+    self.sensitive = sensitive
     
   def __str__(self):
     '''
@@ -114,5 +115,5 @@
     d = {}
     d.update(self.kwargs)
     d.update(dict(source=self.source, state=self.state, name=self.name, 
-                  value=self.value))
-    return d
\ No newline at end of file
+                  value=self.value, sensitive=self.sensitive))
+    return d
diff -Naur lsr/src/AEState/Base.py /home/eitan/cvs/gnome2/lsr/src/AEState/Base.py
--- lsr/src/AEState/Base.py	2006-11-29 11:37:12.000000000 -0800
+++ /home/eitan/cvs/gnome2/lsr/src/AEState/Base.py	2006-11-29 11:28:51.000000000 -0800
@@ -46,6 +46,7 @@
   def __init__(self):
     '''Initialize the dirty set.'''
     self._dirty = set()
+    self._insensitive = set()
     
   def __eq__(self, other):
     '''
@@ -151,6 +152,15 @@
       value = getattr(self, name)
       yield name, value
   
+  def getSensitive(self, name):
+    return not name in self._insensitive
+  
+  def setSensitive(self, name, sensitive):
+    if not sensitive:
+      self._insensitive.add(name)
+    else:
+      self._insensitive.discard(name)
+
   def _newGroup(self, name=None):
     '''
     Creates a new L{AEState.Setting.Group} object with the given name. 
@@ -192,4 +202,4 @@
     @rtype: L{AEState.Setting.Group}
     @raise NotImplementedError: When not implemented in a subclass
     '''
-    raise NotImplementedError
\ No newline at end of file
+    raise NotImplementedError
diff -Naur lsr/src/AEState/Setting.py /home/eitan/cvs/gnome2/lsr/src/AEState/Setting.py
--- lsr/src/AEState/Setting.py	2006-11-29 11:37:12.000000000 -0800
+++ /home/eitan/cvs/gnome2/lsr/src/AEState/Setting.py	2006-11-29 11:28:51.000000000 -0800
@@ -293,6 +293,12 @@
     setattr(self.context, self.variable, val)
     
   value = property(getValue, setValue)
+
+  def getSensitive(self):
+    return self.context.getSensitive(self.variable)
+
+  def setSensitive(self, sensitive):
+    self.context.setSensitive(self.variable, sensitive)
     
   def save(self):
     '''Saves the current variable value.'''
diff -Naur lsr/src/Choosers/SettingsChooser.py /home/eitan/cvs/gnome2/lsr/src/Choosers/SettingsChooser.py
--- lsr/src/Choosers/SettingsChooser.py	2006-11-29 11:37:38.000000000 -0800
+++ /home/eitan/cvs/gnome2/lsr/src/Choosers/SettingsChooser.py	2006-11-29 11:35:00.000000000 -0800
@@ -101,6 +101,7 @@
       widget.set_active(setting.value)
       widget.connect('toggled', self._updateBool, setting)
       self.setting_contexts[(setting.context, setting.variable)] = widget
+      widget.set_sensitive(setting.getSensitive())
       return widget, None
     elif isinstance(setting, AEState.FilenameSetting):
       # filename
@@ -158,9 +159,10 @@
     label = gtk.Label(setting.label)
     label.set_alignment(0, 0.5)
     self.setting_contexts[(setting.context, setting.variable)] = widget
+    widget.set_sensitive(setting.getSensitive())
     return widget, label
 
-  def update(self, state, name, value):
+  def update(self, state, name, value, sensitive):
     widget = self.setting_contexts.get((state, name))
 
     if not widget:
@@ -184,6 +186,9 @@
                                      blue=value[2]))
       if len(value) > 3:
         widget.set_alpha(value[3])
+    
+    if sensitive is not None:
+      widget.set_sensitive(sensitive)
 
 class SettingsChooser(AEChooser.AEChooser): 
   '''
@@ -647,5 +652,5 @@
     self.devices = devices
     self._createDeviceSettingsView()
   
-  def updateSetting(self, state, name, value):
-    self.factory.update(state, name, value)
+  def updateSetting(self, state, name, value, sensitive):
+    self.factory.update(state, name, value, sensitive)
diff -Naur lsr/src/Perks/DefaultDialogPerk.py /home/eitan/cvs/gnome2/lsr/src/Perks/DefaultDialogPerk.py
--- lsr/src/Perks/DefaultDialogPerk.py	2006-11-29 11:37:38.000000000 -0800
+++ /home/eitan/cvs/gnome2/lsr/src/Perks/DefaultDialogPerk.py	2006-11-29 11:32:31.000000000 -0800
@@ -389,7 +389,7 @@
   settings chooser of an update.
   '''
   
-  def execute(self, source, state, name, value, **kwargs):
+  def execute(self, source, state, name, value, sensitive, **kwargs):
     '''
     Gets the settings chooser task and its associated chooser. Informs the
     chooser of the change in setting so it can update its UI to match the new
@@ -410,4 +410,6 @@
     if not chooser:
       return
     if chooser is not source:
-      chooser.updateSetting(state, name, value)
+      chooser.updateSetting(state, name, value, sensitive)
+
+    return True
diff -Naur lsr/src/Task/Tools/System.py /home/eitan/cvs/gnome2/lsr/src/Task/Tools/System.py
--- lsr/src/Task/Tools/System.py	2006-11-29 11:37:12.000000000 -0800
+++ /home/eitan/cvs/gnome2/lsr/src/Task/Tools/System.py	2006-11-29 11:28:51.000000000 -0800
@@ -949,7 +949,7 @@
     self.device_man.unloadDevices()
     self.device_man.loadDevices()
     
-  def signalSetting(self, state, name, value, **kwargs):
+  def signalSetting(self, state, name, value, sensitive=None, **kwargs):
     '''
     Sends an L{AEEvent.SettinChange} indicating the setting with the given name
     in the given L{AEState} object changed its value. Any keyword arguments
@@ -966,5 +966,5 @@
     @type kwargs: dictionary
     '''
     event = AEEvent.SettingChange(self.tier.getIdentity(), self.perk, state, 
-                                  name, value, **kwargs)
-    self.event_man.postEvents(event)
\ No newline at end of file
+                                  name, value, sensitive, **kwargs)
+    self.event_man.postEvents(event)
