Only trigger events for nodes with children
diff --git a/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/FlattenedList.as b/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/FlattenedList.as
index 646ada7..1409971 100644
--- a/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/FlattenedList.as
+++ b/frameworks/projects/Collections/src/main/royale/org/apache/royale/collections/FlattenedList.as
@@ -23,34 +23,34 @@
 	import org.apache.royale.events.Event;
 	import org.apache.royale.events.EventDispatcher;
 	import org.apache.royale.events.IEventDispatcher;
-    import org.apache.royale.collections.parsers.IInputParser;
-    import org.apache.royale.collections.converters.IItemConverter;
-    
-    
-    /**
-     *  The FlattenedList class takes a HierarchicalData object and "flattens" it
+	import org.apache.royale.collections.parsers.IInputParser;
+	import org.apache.royale.collections.converters.IItemConverter;
+	
+	
+	/**
+	 *  The FlattenedList class takes a HierarchicalData object and "flattens" it
 	 *  using all of the open members.
-     * 
-     *  @langversion 3.0
-     *  @playerversion Flash 10.2
-     *  @playerversion AIR 2.6
-     *  @productversion Royale 0.0
-     * 
-     *  @royalesuppresspublicvarwarning
-     */
+	 * 
+	 *  @langversion 3.0
+	 *  @playerversion Flash 10.2
+	 *  @playerversion AIR 2.6
+	 *  @productversion Royale 0.0
+	 * 
+	 *  @royalesuppresspublicvarwarning
+	 */
 	public class FlattenedList extends ArrayList
 	{
 		public var hdata:IHierarchicalData;
 		public var openNodes:Array;
 		
-        /**
-         *  Constructor.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
-         */
+		/**
+		 *  Constructor.
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
+		 */
 		public function FlattenedList(hdata:IHierarchicalData)
 		{
 			super();
@@ -61,11 +61,11 @@
 		
 		/**
 		 * Resets the list so that only the top root node is open.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
 		 */
 		public function reset():void
 		{
@@ -92,11 +92,11 @@
 		
 		/**
 		 * Returns true if the node has children nodes.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
 		 */
 		public function hasChildren(node:Object):Boolean
 		{
@@ -105,11 +105,11 @@
 		
 		/**
 		 * Returns true if the node is currently open.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
 		 */
 		public function isOpen(node:Object):Boolean
 		{
@@ -118,11 +118,11 @@
 		
 		/**
 		 * Opens the given node. The array data now contains more elements.
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
+		 *  
+		 *  @langversion 3.0
+		 *  @playerversion Flash 10.2
+		 *  @playerversion AIR 2.6
+		 *  @productversion Royale 0.0
 		 */
 		public function openNode(node:Object):void
 		{
@@ -148,10 +148,11 @@
 		 */
 		public function closeNode(node:Object):void
 		{
+			var hasChildren:Boolean = hdata.hasChildren(node);
 			var i:int = openNodes.indexOf(node);
 			if (i != -1) {
 				
-				if (hdata.hasChildren(node)) {
+				if (hasChildren) {
 					var children:Array = hdata.getChildren(node) as Array;
 					var n:int = children.length;
 					for (var j:int=0; j < n; j++) {
@@ -170,7 +171,8 @@
 					super.removeItemAt(i--);
 				}
 			}
-			updateNode(node);
+			if(hasChildren)
+				updateNode(node);
 		}
 		
 		/**