     {
         if (value == _maximum)
             return;
+
         _maximum = value;
-        
-        rangeChanged = true;
+        maxChanged = true;
+
         invalidateProperties();
     }
     
-    //////////////////////////////////
+    //---------------------------------
     // minimum
-    //////////////////////////////////    
+    //---------------------------------
     
     private var _minimum:Number = 0;
     
+    private var minChanged:Boolean = false;
+    
     /**
      *  Number which represents the minimum value possible for 
-     *  <code>value</code>. If the values for either <code>maximum</code> or
-     *  <code>value</code> are less than <code>minimum</code>, they will
-     *  be changed to reflect the new min value.
+     *  <code>value</code>. If the values for either 
+     *  <code>maximum</code> or <code>value</code> are less
+     *  than <code>minimum</code>, they will be changed to 
+     *  reflect the new <code>minimum</code>
      *
      *  @default 0
      */

{
    
import flash.events.Event;
import flex.core.SkinnableComponent;
import mx.events.FlexEvent;

/**
 *  The Range class holds a value and a legal range for that value, defined by a
 *  minimum and maximum. The value is always constrained to be within the
 *  current minimum and maximum, and the minimum and maximum are always
 *  constrained to be in the proper numerical order such that, at any
 *  time, (minimum &lt;= value &lt;= maximum) is true.
 * 
 *  <p>Range has the <code>stepSize</code> and <code>pageSize</code> properties
 *  to control how much <code>value</code> will change based on small (step) and
 *  large (page) stepping operations.</p>
 * 
 *  <p>Range is a base class for various controls that require Range
 *  functionality, including ScrollBar and its subclasses.</p>
 * 
 *  @see flex.component.ScrollBar
 *  @see flex.component.HScrollBar
 *  @see flex.component.VScrollBar
 */  
public class Range extends SkinnableComponent
{

            return;
        
        _value = value;
        
        dispatchEvent(new FlexEvent(FlexEvent.VALUE_COMMIT));
    }
    
    /**
     *  Steps the range value up or down.
     *
     *  @param increase Whether the stepping action increases or
     *  decreases <code>value</code>.
     */
    public function step(increase:Boolean = true):void
    {
        if (increase)
            setValue(nearestValidValue(value + stepSize, stepSize));
        else
            setValue(nearestValidValue(value - stepSize, stepSize));
    }
}

}