                 // this is an old recordset - use its columns
                 var n:int = cols.length;
                 var colName:Object;
-				if (n == 0) {
-					col = new DataGridColumn();
-					newCols.push(col);
-				}
-				else {
-	                for (var i:int = 0; i < n; i++)
-	                {
-	                    colName = cols[i];
-	                    if (colName is QName)
-	                        colName = QName(colName).localName;
-	                    col = new DataGridColumn();
-	                    col.dataField = String(colName);
-	                    newCols.push(col);
-	                }
-				}
+                for (var i:int = 0; i < n; i++)
+                {
+                    colName = cols[i];
+                    if (colName is QName)
+                        colName = QName(colName).localName;
+                    col = new DataGridColumn();
+                    col.dataField = String(colName);
+                    newCols.push(col);
+                }
             }
                                 
             columns = newCols;

                /** Old code assumed that the property would be a simply name that could be dereferenced
                  * through array notation. Using a method call here provides, minimally, an override
                  * point where developers could extend this functionality in their own datagrid subclass **/
                if (getCurrentDataValue(data, property) !== newData)
                {
                    bChanged = setNewValue(data, property, newData, event.columnIndex);
					
					if (property == null)
						collection[event.rowIndex] = newData;
                }
                if (bChanged && !(data is IPropertyChangeNotifier || data is XML))
                {

                var newData:Object = itemEditorInstance[_columns[event.columnIndex].editorDataField];
                var property:String = _columns[event.columnIndex].dataField;
                var data:Object = event.itemRenderer.data;
                var typeInfo:String = "";
                for each(var variable:XML in describeType(data).variable)
                {
                    if (property == variable.@name.toString())
                    {
