 				{
 					customConvert = function(item:*):String
 					{
+						if (item === undefined || item === null) return "";
 						return item[fieldName].toString().toLocaleLowerCase();
 					}
 				}

				{
					customConvert = function(item:*):String
					{
						return item[fieldName].toString();
					}
				}

			_indexMap.clear();
			if (returnIndexedArray)
			{
				/* Assert that this is an object array, this won't necessarily work with primitive types.
				 * This technique won't work with non-unique items in general;
				 * it would take more iteratee-generation code to make this work
				 * reliably by wrapping it in objects with an attached index, 
				 * then unpacking it in the iteratee functions. */
				if (!arrayIsType(array, Object)) JS.error("Warning: Can't do an indexed array sort of non-objects reliably, as there's a higher chance of non-unique items.");
				array.forEach(function(item:*, index:int):void {_indexMap.set(item, index);})
			}

