 
     /**
      * Remove any set value for the specified preference.
+     * This does not dispatch an event because this would only be done to remove an
+     * obsolete preference.
      */
     public function remove (name :String) :void
     {
-        delete _so.data[name];
-        _so.flush(); // flushing is not strictly necessary
+        delete _data[name];
+        if (_so != null) {
+            _so.flush(); // flushing is not strictly necessary
+        }
     }
 
     /**

     */
    public function getValue (name :String, defValue :Object) :Object
    {
        var val :* = _so.data[name];
        return (val === undefined) ? defValue : val;
    }


     */
    public function ensureCapacity (kilobytes :int, rl :ResultListener) :void
    {
        if (_so == null) {
            if (rl != null) {
                rl.requestCompleted(this);
            }
            return;
        }

        // flush with the size, see if we're cool
        var result :String = _so.flush(1024 * kilobytes);
        if (rl == null) {
