      */ 
     public function clear():void
     {
+        // If the persistence manager hasn't been initialized, do so now
         if (!initialized)
-            initialize();
-        
-		if (enabled)
-		{
+            load();
+        
+        // Make sure the shared object is valid since initialization fails silently
+        if (so != null)
             so.clear();
-            so.flush();
-		}
-    }
-    
-    /**
-     *  @inheritDoc
-     *  
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-     */ 
-    public function flush():void
-    {
-		if (enabled)
-        	so.flush();
+    }
+    
+    /**
+     *  @inheritDoc
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */ 
+    public function save():Boolean
+    {
+        try
+        {
+            // We assume the flush suceeded
+            /*var flushStatus:String = */so.flush();
+            
+            // FIXME (chiedozi): Flush can still fail.  Should validate use case below
+//            if (flushStatus == SharedObjectFlushStatus.PENDING)
+//                so.addEventListener(NetStatusEvent.NET_STATUS, sharedObject_netStatusHandler);
+        }
+        catch (e:Error)
+        {
+            // Fail silently
+            return false;
+        }
+        
+        return true;
     }
 }
 }
//
////////////////////////////////////////////////////////////////////////////////

// TODO (chiedozi): Should this be a singleton
package spark.core.managers
{
import flash.net.SharedObject;

    
    /**
     *  @private
     *  Returns whether the persistence manager has been initialized.
     */ 
    private var initialized:Boolean = false;
    
