void SaveUpdatedPrefab(ScriptedObject so){
		so.SaveToXML(so.XMLName);
		so.SaveToPrefab();
	}	
	void SaveRole(ScriptedObject role){
		role.SaveToXML(role.XMLName);
		// update the prefab too!
		GameObject vup = PrefabUtility.FindValidUploadPrefabInstanceRoot(role.gameObject);
//		Debug.Log (po.ToString()+pp.ToString()+pr.ToString()+rgo.ToString()+vup.ToString());
		
		if ( vup != null){
			PrefabUtility.ReplacePrefab (vup,
									PrefabUtility.GetPrefabParent(vup),
									ReplacePrefabOptions.ConnectToPrefab); // GetPrefabObject crashed unity editor...
		}
		
		
//		PrefabUtility.ReplacePrefab (role.gameObject,
//									PrefabUtility.GetPrefabParent(role.gameObject),
//									ReplacePrefabOptions.ConnectToPrefab); // GetPrefabObject crashed unity editor...
	}