 			if (metadata.hasOwnProperty(METADATA_COLUMN_INDEX))
 				return new CSVColumnNode(this, metadata[METADATA_COLUMN_INDEX]);
 			if (metadata.hasOwnProperty(METADATA_COLUMN_NAME))
-				return new CSVColumnNode(this, getColumnNames().indexOf(metadata[METADATA_COLUMN_NAME]));
+			{
+				var index:int = getColumnNames().indexOf(metadata[METADATA_COLUMN_NAME]);
+				if (index >= 0)
+					return new CSVColumnNode(this, index);
+			}
 			
 			return null;
 		}

				colIndex = colNames.indexOf(columnId);
				colName = String(columnId);
			}
			if (!metadata[ColumnMetadata.TITLE])
				metadata[ColumnMetadata.TITLE] = colName;
			

		/**
		 * @param rows The rows to get values from.
		 * @param columnIndex If this is -1, record index values will be returned.  Otherwise, this specifies which column to get values from.
		 * @param outputArrayOrVector Output Array or Vector to store the values from the specified column, excluding the first row, which is the header.
		 */		
		private function getColumnValues(rows:Array, columnIndex:int, outputArrayOrVector:*):void
		{
