                 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)
+                var typeInfo:String = describeType(data).@name;
+                for each (var variable:XML in describeType(data).variable)
                 {
                     if (property == variable.@name.toString())
                     {

    /**
     *  @private
     */ 
    protected function isComplexColumn( property:String ):Boolean
    {
        return ( property.indexOf( "." ) != -1 );
    }

    //Gets the reference to the parent object where a property will be updated

    /**
     *  @private
     */ 
    protected function getCurrentDataValue(data:Object, property:String):String
    {
		if (property == null)
			return String(data);
			
        if (!isComplexColumn(property))
            return data[property];
        
        var complexFieldNameComponents:Array = property.split(".");
        var obj:Object = deriveComplexFieldReference(data, complexFieldNameComponents);

        return String(obj);
    }

    //Passing all of these parameters as it basically allows everything you would need to subclass for all sorts of fun implementations
    /**
     *  @private
     */ 
    protected function setNewValue(data:Object, property:String, value:Object, columnIndex:int):Boolean 
    {
        if (!isComplexColumn(property))
        {
			if (property != null)
            	data[property] = value;
        } 
        else 
        {
            var complexFieldNameComponents:Array = property.split(".");
            var lastProp:String = complexFieldNameComponents.pop();
            var parent:Object = deriveComplexFieldReference(data, complexFieldNameComponents);
            parent[lastProp] = value;
        }
        
        //The value they typed in is always converted to a string, but is the value actually a string in the dataprovider?
