 				if (includeNullFields || record[field] != null)
 				{
 					if (depth == 1)
+					{
 						output[field] = false;
+					}
 					else
-						_outputNestedFieldNames(record[field], includeNullFields, output[field] = {}, depth - 1);
+					{
+						if (!output[field])
+							output[field] = {};
+						_outputNestedFieldNames(record[field], includeNullFields, output[field], depth - 1);
+					}
 				}
 			}
 		}

{
	import flash.utils.getTimer;
	
	import mx.utils.StringUtil;
	
	import weave.api.WeaveAPI;

						var fieldChain:Array = fields[c];
						var cell:Object = record;
						for each (var field:String in fieldChain)
							if (cell)
								cell = cell[field];
						row[c] = cell;
					}
				}
