Index: System.Web.UI.WebControls.WebParts/PersonalizableAttribute.cs =================================================================== --- System.Web.UI.WebControls.WebParts/PersonalizableAttribute.cs (revision 68444) +++ System.Web.UI.WebControls.WebParts/PersonalizableAttribute.cs (working copy) @@ -125,15 +125,18 @@ { if (type == null) throw new ArgumentNullException ("type"); - - List ret = new List (); + PropertyInfo[] properties = type.GetProperties (); if (properties == null || properties.Length == 0) - return ret; + return new PropertyInfo [0]; + List ret = null; foreach (PropertyInfo pi in properties) - if (PropertyQualifies (pi)) + if (PropertyQualifies (pi)) { + if (ret == null) + ret = new List (); ret.Add (pi); + } return ret; } =================================================================== --- System.Web.UI.WebControls/Menu.cs (revision 68444) +++ System.Web.UI.WebControls/Menu.cs (working copy) @@ -944,11 +944,11 @@ dynamicMenuItemStyle.TrackViewState (); if (dynamicMenuStyle != null) dynamicMenuStyle.TrackViewState (); - if (levelMenuItemStyles != null) + if (levelMenuItemStyles != null && levelMenuItemStyles.Count > 0) ((IStateManager)levelMenuItemStyles).TrackViewState(); - if (levelSelectedStyles != null) + if (levelSelectedStyles != null && levelMenuItemStyles.Count > 0) ((IStateManager)levelSelectedStyles).TrackViewState(); - if (levelSubMenuStyles != null) + if (levelSubMenuStyles != null && levelSubMenuStyles.Count > 0) ((IStateManager)levelSubMenuStyles).TrackViewState(); if (dynamicSelectedStyle != null) dynamicSelectedStyle.TrackViewState(); @@ -1178,8 +1178,8 @@ if (dynamicMenuStyle != null) RegisterStyle (DynamicMenuStyle); - if (levelMenuItemStyles != null) { - levelMenuItemLinkStyles = new List