 					continue;
 					
 				setSessionState(property, newState[name], removeMissingDynamicObjects);
-			}
-			
-			// pass deprecated session state to deprecated setters
-			for each (name in getDeprecatedSetterNames(linkableObject))
-				if (newState.hasOwnProperty(name))
-					linkableObject[name] = newState[name];
+			}
+			
+			// pass deprecated session state to deprecated setters
+			for each (name in getDeprecatedSetterNames(linkableObject))
+				if (newState.hasOwnProperty(name))
+					linkableObject[name] = newState[name];
 			
 			// resume callbacks after setting session state
 			objectCC.resumeCallbacks();
 		}
 		
-		private const _getSessionStateIgnoreList:Dictionary = new Dictionary(true); // keeps track of which objects are currently being traversed
+		private const _getSessionStateIgnoreList:Dictionary = new Dictionary(true); // keeps track of which objects are currently being traversed
 		
 		/**
 		 * @param linkableObject An object containing sessioned properties (sessioned objects may be nested).

						resultProperties.push(property);
					}
					else
					{
						/*
						if (property != null)
							trace("ignoring duplicate object:",name,property);
						*/
					}
				}
				// special case if there are no child objects -- return null
				if (resultNames.length > 0)
				{
					// second pass: get values from property names
					result = new Object();
					for (i = 0; i < resultNames.length; i++)
					{
						var value:Object = getSessionState(resultProperties[i]);
						property = resultProperties[i] as ILinkableObject;
						// do not include objects that have a null implicit session state (no child objects)
						if (value == null && !(property is ILinkableVariable) && !(property is ILinkableCompositeObject))
							continue;
						result[resultNames[i]] = value;
						//trace("getState",getQualifiedClassName(sessionedObject),resultNames[i],result[resultNames[i]]);
					}
				}
			}
			
			_getSessionStateIgnoreList[linkableObject] = undefined;
			
			return result;
		}
		
		/**

			{
				// remember this child-parent relationship
				childToParentDictionaryMap[linkableChild][linkableParent] = true;
				parentToChildDictionaryMap[linkableParent][linkableChild] = true;
				
				// make child changes trigger parent callbacks
				var parentCC:ICallbackCollection = getCallbackCollection(linkableParent as ILinkableObject);
				// set alwaysCallLast=true for triggering parent callbacks, so parent will be triggered after all the other child callbacks
				getCallbackCollection(linkableChild).addImmediateCallback(linkableParent, parentCC.triggerCallbacks, false, true); // parent-child relationship
			}
