Index: tests/Control/test_LayerSwitcher.html
===================================================================
--- tests/Control/test_LayerSwitcher.html	(revision 4252)
+++ tests/Control/test_LayerSwitcher.html	(working copy)
@@ -65,7 +65,7 @@
 
     function test_04_Control_LayerSwitcher_redraw (t) {
 
-        t.plan( 12 );
+        t.plan( 19 );
 
         map = new OpenLayers.Map('map');
         var layer = new OpenLayers.Layer.WMS("WMS", 
@@ -95,12 +95,42 @@
         t.eq(false, control.checkRedraw(), "check redraw is false");
         
         control = new OpenLayers.Control.LayerSwitcher();
+        var myredraw = control.redraw;
         control.redraw = function() { 
             t.ok(true, "redraw called when setting vis");
         }
         map.addControl(control); 
+        var func = myredraw.bind(control);
+        func();
         markers.setVisibility(false); 
         t.eq(control.checkRedraw(), true, "check redraw is true after changing layer and not letting redraw happen.");
+        map.removeControl(control);
+        
+        control = new OpenLayers.Control.LayerSwitcher();
+        var myredraw = control.redraw;
+        control.redraw = function() { 
+            t.ok(true, "redraw called when setting inRange");
+        }
+        map.addControl(control); 
+        var func = myredraw.bind(control);
+        func();
+        markers.inRange = false;
+        t.eq(control.checkRedraw(), true, "check redraw is true after changing layer.inRange and not letting redraw happen.");
+        map.removeControl(control);
+        
+        control = new OpenLayers.Control.LayerSwitcher();
+        var myredraw = control.redraw;
+        control.redraw = function() { 
+            t.ok(true, "redraw called when raising base layer ");
+        }
+        
+        map.addControl(control); 
+        var func = myredraw.bind(control);
+        func();
+        map.raiseLayer(layer, 1);
+        t.eq(control.checkRedraw(), true, "check redraw is true after changing layer.inRange and not letting redraw happen.");
+        map.removeControl(control);
+        
 
     }
     function test_05_Control_LayerSwitcher_ascendingw (t) {
Index: lib/OpenLayers/Control/LayerSwitcher.js
===================================================================
--- lib/OpenLayers/Control/LayerSwitcher.js	(revision 4252)
+++ lib/OpenLayers/Control/LayerSwitcher.js	(working copy)
@@ -197,6 +197,8 @@
                 var layerState = this.layerStates[i];
                 var layer = this.map.layers[i];
                 if ( (layerState.name != layer.name) || 
+                     (layerState.inRange != layer.inRange) || 
+                     (layerState.id != layer.id) || 
                      (layerState.visibility != layer.visibility) ) {
                     redraw = true;
                     break;
@@ -238,7 +240,9 @@
             var layer = this.map.layers[i];
             this.layerStates[i] = {
                 'name': layer.name, 
-                'visibility': layer.visibility
+                'visibility': layer.visibility,
+                'inRange': layer.inRange,
+                'id': layer.id
             };
         }    
 
