diff --git a/README.md b/README.md
index ecdd46da4a4..772042be952 100644
--- a/README.md
+++ b/README.md
@@ -93,6 +93,7 @@ Do not use 20.x.x if you need IE support.
 - possibility to disable global search in backend #1532
 - reduce needless saves by avoiding setting `_hasDataChanges` flag #2066
 - removed support for `global/sales/old_fields_map` defined in XML #921
+- removed lib/flex containing unused ActionScript "file uploader" files #2271
 
 For full list of changes, you can [compare tags](https://github.com/OpenMage/magento-lts/compare/1.9.4.x...20.0).
 
diff --git a/lib/flex/uploader/uploader.mxml b/lib/flex/uploader/uploader.mxml
deleted file mode 100644
index dfa77db4534..00000000000
--- a/lib/flex/uploader/uploader.mxml
+++ /dev/null
@@ -1,76 +0,0 @@
-
-
-
-	
-	
-	
-	
-	
-	
-
\ No newline at end of file
diff --git a/lib/flex/uploader/uploaderSingle.mxml b/lib/flex/uploader/uploaderSingle.mxml
deleted file mode 100644
index e37989acae2..00000000000
--- a/lib/flex/uploader/uploaderSingle.mxml
+++ /dev/null
@@ -1,91 +0,0 @@
-
-
-
-	
-		
-	
-	
-	
-	
-	
-	
-	
-
\ No newline at end of file
diff --git a/lib/flex/varien/varien/upload/Uploader.as b/lib/flex/varien/varien/upload/Uploader.as
deleted file mode 100644
index c5c6ebfb801..00000000000
--- a/lib/flex/varien/varien/upload/Uploader.as
+++ /dev/null
@@ -1,629 +0,0 @@
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Open Software License (OSL 3.0)
- * that is bundled with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/osl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magento.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magento.com for more information.
- *
- * @category    Mage
- * @package     Mage_Uploader
- * @copyright  Copyright (c) 2006-2020 Magento, Inc. (http://www.magento.com)
- * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
- */
-package varien.upload
-{
-	import flash.errors.IOError;
-	import flash.errors.IllegalOperationError;
-	import flash.events.DataEvent;
-	import flash.events.Event;
-	import flash.events.EventDispatcher;
-	import flash.events.HTTPStatusEvent;
-	import flash.events.IOErrorEvent;
-	import flash.events.ProgressEvent;
-	import flash.events.SecurityErrorEvent;
-	import flash.net.FileFilter;
-	import flash.net.FileReference;
-	import flash.net.FileReferenceList;
-	import flash.net.URLRequest;
-	import flash.net.URLRequestMethod;
-	import flash.net.URLVariables;
-	
-	import mx.core.IMXMLObject;
-	import mx.utils.ObjectUtil;
-	
-	
-	/**	 
-	 *  @eventType varien.upload.UploaderEvent.OPEN
-	 */
-	[Event(name='open', type='varien.upload.UploaderEvent')]
-	
-	/**	 
-	 *  @eventType varien.upload.UploaderEvent.RESET
-	 */
-	[Event(name='reset', type='varien.upload.UploaderEvent')]
-	
-	/**	 
-	 *  @eventType varien.upload.UploaderEvent.REMOVE
-	 */
-	[Event(name='remove', type='varien.upload.UploaderEvent')]	
-	
-	/**	 
-	 *  @eventType varien.upload.UploaderEvent.PROGRESS
-	 */
-	[Event(name='progress', type='varien.upload.UploaderEvent')]
-	
-	/**	 
-	 *  @eventType varien.upload.UploaderEvent.ERROR
-	 */
-	[Event(name='error', type='varien.upload.UploaderEvent')]
-	
-	/**	 
-	 *  @eventType varien.upload.UploaderEvent.SELECT
-	 */
-	[Event(name='select', type='varien.upload.UploaderEvent')]
-	
-	/**	 
-	 *  @eventType varien.upload.UploaderEvent.COMPLETE
-	 */
-	[Event(name='complete', type='varien.upload.UploaderEvent')]
-	
-	/**	 
-	 *  @eventType varien.upload.UploaderEvent.CANCEL
-	 */
-	[Event(name='cancel', type='varien.upload.UploaderEvent')]
-	
-	public class Uploader extends EventDispatcher implements IMXMLObject
-	{	
-		public var document:Object;
-		
-		public var id:String;
-				
-		public var useTypeFilter:Boolean;
-		
-		protected var _fileList:FileReferenceList;		
-		protected var _typeFilters:Object;
-		protected var _config:Object;
-		protected var _files:Object;
-		protected var _counter:uint;
-		protected var _laterUploadStack:Array;
-
-		public static const FILE_NEW:String 	 	  = 'new';
-		public static const FILE_PROGRESS:String      = 'progress';
-		public static const FILE_COMPLETE:String      = 'complete';
-		public static const FILE_FULL_COMPLETE:String = 'full_complete';
-		public static const FILE_ERROR:String    	  = 'error';
-		
-		public static const ERROR_ZERO_SIZE:Number	  = 1;
-		public static const ERROR_HTTP:Number	  	  = 2;
-		public static const ERROR_IO:Number	  	      = 3;
-		public static const ERROR_SECURITY:Number	  = 4;
-		public static const ERROR_SSL:Number	  	  = 5;
-
-		/**
-		 * Constructor
-		 * 
-		 * @param config configuration of uploader
-		 */
-		public function Uploader(config:Object=null)
-		{
-			super();
-			_fileList 	   = new FileReferenceList();			
-			_files 		   = {};
-			_typeFilters   = {};
-			_config		   = {};
-			useTypeFilter  = false;
-			_laterUploadStack = [];
-			_fileList.addEventListener(Event.SELECT, _handleSelect);
-		}
-		
-		/**
-		 * Implementing of IMXMLObject
-		 * 
-		 * @see IMXMLObject
-		 */
-		public function initialized(document:Object, id:String):void
-		{
-			this.document = document;
-			this.id = id;
-		}
-		
-		/**
-		 * Browse files for upload
-		 */
-		public function browse():void
-		{
-			_fileList.browse(useTypeFilter ? getTypeFiltersArray() : null);
-		}
-		
-		/**
-		 * Add file filter for uploader
-		 * 
-		 * @param filterId filter unique id
-		 * @param filterLabel label that will be showed in dialog box
-		 * @param fileTypes array of file filter masks
-		 */
-		public function addTypeFilter(filterId:String, filterLabel:String, fileTypes:Array):void
-		{
-			_typeFilters[filterId] = new FileFilter(filterLabel, fileTypes.join(';'));			
-		}
-		
-		/**
-		 * Retrieve file filters as array
-		 */
-		public function getTypeFiltersArray():Array
-		{
-			var filters:Array = new Array();
-			for each (var typeFilter:FileFilter in _typeFilters) {			
-				filters.push(typeFilter);
-			}
-			return filters;
-		}
-		
-		/**
-		 * Retrieve file filters as object
-		 */
-		public function getTypeFilters():Object
-		{
-			return _typeFilters;
-		}
-		
-		/**
-		 * Retrieve file filter with specified id
-		 * 
-		 * @param filterId filter unique id
-		 */
-		public function getTypeFilter(filterId:String):FileFilter
-		{
-			return hasTypeFilter(filterId) ? _typeFilters[filterId] : null;
-		}
-		
-		/**
-		 * Check if filter with specified id exists
-		 * 
-		 * @param filterId filter unique id
-		 */
-		public function hasTypeFilter(filterId:String):Boolean
-		{
-			return (_typeFilters[filterId] is FileFilter);
-		}
-		
-		/**
-		 * Remove type filter with specified id
-		 * 
-		 * @param filterId filter unique id
-		 */
-		public function removeTypeFilter(filterId:String):void
-		{
-			if (hasTypeFilter(filterId)) {
-				delete _typeFilters[filterId];
-			}
-		}
-		
-		/**
-		 * Upload configuration property
-		 * 
-		 * For example:
-		 * uploadObject.config = {
-		 * 		url:		'http://myhost.com/fileUpload.php',
-		 * 		params: 	{test:1},
-		 * 		file_field:	'file'
-		 * }; 
-		 */
-		 
-		public function set config(value:Object):void
-		{
-			for (var property:String in value) {
-				_config[property] = value[property];
-			}
-		}
-		
-		public function get config():Object
-		{
-			return _config;
-		}
-		
-		/**
-		 * Retrieve file info with specified id
-		 * 
-		 * @param id file id
-		 */
-		public function getFileInfo(id:String):Object
-		{
-			var file:FileReference = _getFileById(id);
-			if (file) {
-				return _collectFileInfo(id);
-			}
-			return null;			
-		}
-		
-		/**
-		 * Retrieve file info for all files as array
-		 */					
-		public function get filesInfo():Array
-		{
-			var result:Array = [];
-			for (var id:String in _files) {				
-				result.push(_collectFileInfo(id));
-			}
-			return result;
-		}
-		
-		/**
-		 * Removes file info for file with specified id
-		 */
-		public function removeFiles():void
-		{			
-			for (var id:String in _files) {
-				delete _files[id];
-			}
-			_createEvent(UploaderEvent.REMOVE_ALL);
-		}
-		
-		/**
-		 * Removes file info for file with specified id
-		 * 
-		 * @param id file id
-		 */
-		public function removeFile(id:String):void
-		{			
-			if(_files[id]) {
-				delete _files[id];
-			}
-			_createEvent(UploaderEvent.REMOVE);
-		}
-		
-		/**
-		 * Start uploading of files
-		 */
-		public function upload():void
-		{
-			if (config) {
-				for(var id:String in _files) {
-					if(_files[id].status == Uploader.FILE_NEW 
-					    || 
-					    (_files[id].status == Uploader.FILE_ERROR 
-					     && _files[id].errorCode!=Uploader.ERROR_ZERO_SIZE)) {
-							_uploadOneFile(id);
-					}
-				}
-			}
-		}
-		
-		protected function _uploadOneFile(id:String):void
-		{
-			var request:URLRequest = new URLRequest(config.url);
-			request.method = URLRequestMethod.POST;
-			request.data = new URLVariables();
-			if (config.params) {
-				for (var property:String in config.params) {
-					request.data[property] = config.params[property];
-				}
-			}
-			
-			var file:FileReference = _files[id].file as FileReference;
-			
-			file.addEventListener(
-				ProgressEvent.PROGRESS,
-				_handleProgress
-			);
-			
-			file.addEventListener(
-				DataEvent.UPLOAD_COMPLETE_DATA,
-				_handleComplete
-			);
-			
-			file.addEventListener(
-				Event.COMPLETE,
-				_handlePartialComplete
-			);
-			
-			file.addEventListener(
-				IOErrorEvent.IO_ERROR, 
-				_handleIOError
-			);
-			
-			file.addEventListener(
-				SecurityErrorEvent.SECURITY_ERROR,
-				_handleSecurityError
-			);
-			
-			file.addEventListener(
-				HTTPStatusEvent.HTTP_STATUS,
-				_handleHttpStatus
-			);
-			_files[id].status = Uploader.FILE_PROGRESS;
-			_files[id].uploadTry ++;
-			file.upload(request, config.file_field);
-		}
-		
-		/**
-		 * Collects file info from FileReference object with specified id
-		 * 
-		 * @param id file id
-		 */
-		protected function _collectFileInfo(id:String):Object
-		{
-			var info:Object = {};
-			info.id      = id;
-			info.name 	 = _files[id].file.name;
-			try {
-				info.size = _files[id].file.size;
-			} catch (exception:IOError) {
-				info.size = 0;				
-			}
-			info.creator  	= _files[id].file.creator;
-			info.status	  	= _files[id].status;
-			info.error	  	= _files[id].error;
-			info.errorCode	= _files[id].errorCode;
-			info.progress 	= _files[id].progress;
-			info.http	  	= _files[id].http;
-			info.response 	= _files[id].response;
-			return info;
-		}
-		
-		/**
-		 * Generates unique file id
-		 * 
-		 * @param file FileReference
-		 */
-		protected function _uniqueFileId(file:FileReference):String
-		{				
-			return 'file_' + uint(_counter++).toString();
-		}
-		
-		/**
-		 * Retrieve file reference by id
-		 * 
-		 * @param id file id
-		 */
-		protected function _getFileById(id:String):FileReference
-		{
-			if(_files[id]) {
-				return _files[id].file;
-			}
-			return null;
-		}
-		
-		/**
-		 * Retrieve file id by reference
-		 * 
-		 * @param file FileReference
-		 */
-		protected function _getIdByFile(file:FileReference):String
-		{
-			for (var id:String in _files) {				
-				if(_files[id].file===file) {
-					return id;
-				}
-			}	
-			return null;
-		}
-		
-		/**
-		 * Create and dispatch UploadEvent with specified type
-		 * 
-		 * @param eventType type of UploadEvent
-		 */
-		protected function _createEvent(eventType:String, fileId:String=null):void
-		{
-			var event:UploaderEvent = new UploaderEvent(eventType);
-			if(fileId === null) {
-				event.data = {files: filesInfo};
-			} else {
-				event.data = {file : getFileInfo(fileId)};
-			}
-			dispatchEvent(event);
-		}
-		
-		/**
-		 * Property indicates that all passed for upload file uploaded successfully
-		 */
-		public function get allComplete():Boolean
-		{
-			for (var id:String in _files) {
-				if (_files[id].status == Uploader.FILE_PROGRESS 
-					|| _files[id].status == Uploader.FILE_COMPLETE) {
-					return false;
-				}
-			} 
-			
-			return true;
-		}
-		
-		/**
-		 * Property indicates that all passed for upload file has IO Error
-		 * This problem only on servers with self-signed sertificates.
-		 */
-		public function get allIOError():Boolean
-		{			
-			for (var id:String in _files) {
-				if (_files[id].status == Uploader.FILE_PROGRESS 
-					 && _laterUploadStack.indexOf(id)===-1) {
-					return false;
-				}	
-			}
-			
-			return true;
-		}
-		
-		protected function _handleSelect(event:Event):void
-		{			
-			for each (var file:FileReference in _fileList.fileList) {
-				// Try to catch bad files
-				var badFile:Boolean = false;
-				var zeroSize:Boolean = false;				 
-				try {
-					file.size;
-				} 
-				catch (exception:IllegalOperationError) {
-					badFile = true;
-				}
-				catch (exception:IOError) { // If file size == 0
-					zeroSize = true;
-				}
-				
-				if(!badFile) {
-					var id:String = _uniqueFileId(file);
-					_files[id] = {status:Uploader.FILE_NEW, file:file, uploadTry:0};
-					if(zeroSize) {
-						_files[id].status 	  = Uploader.FILE_ERROR;
-						_files[id].errorCode  = Uploader.ERROR_ZERO_SIZE;
-						_files[id].error	  = 'File size should be more than 0 bytes';
-					}
-				}
-			}
-			_createEvent(UploaderEvent.SELECT);
-		}
-		
-		protected function _handleProgress(event:ProgressEvent):void
-		{
-			var id:String = _getIdByFile(event.target as FileReference);
-			if (_files[id]) {
-				_files[id].progress = {total: event.bytesTotal, loaded: event.bytesLoaded};
-			}
-			_createEvent(UploaderEvent.PROGRESS, id);
-		}
-		
-		protected function _handleComplete(event:DataEvent):void
-		{
-			var id:String = _getIdByFile(event.target as FileReference);
-			if (_files[id]) {				
-				_files[id].status   = Uploader.FILE_FULL_COMPLETE;
-				_files[id].progress = {total: _files[id].size, loaded: _files[id].size};
-				_files[id].response = event.data;
-				_files[id].http	    = 200;
-			}
-			
-			_uploadFromLaterStack();
-			_createEvent(UploaderEvent.PROGRESS, id);
-			if (allComplete) {
-				_createEvent(UploaderEvent.COMPLETE);
-			}		
-		}
-		
-		protected function _handlePartialComplete(event:Event):void
-		{
-			var id:String = _getIdByFile(event.target as FileReference);
-			if(_files[id]) {
-				_files[id].progress = {total: _files[id].size, loaded: _files[id].size};
-				_files[id].status   = Uploader.FILE_COMPLETE;
-			}
-			_createEvent(UploaderEvent.PROGRESS, id);
-		}
-		
-		protected function _handleIOError(event:IOErrorEvent):void
-		{
-			var id:String = _getIdByFile(event.target as FileReference);
-			if(_files[id]) {				
-				if(_files[id].status != Uploader.FILE_ERROR){
-					if (_files[id].uploadTry > 1) {
-						_files[id].status    = Uploader.FILE_ERROR;
-						_files[id].error	 = 'I/O Error';
-						_files[id].errorCode = Uploader.ERROR_IO;
-					} else {
-						_resetFileHandlers(id);
-						_laterUploadStack.push(id);
-						if (allIOError) {
-							_markAsSSLError();
-						}	
-						return;
-					}
-				}
-			}
-			_createEvent(UploaderEvent.ERROR, id);
-		}
-		
-		protected function _markAsSSLError():void
-		{
-			for (var id:String in _files) {
-				if (_files[id].status == Uploader.FILE_PROGRESS) {
-					_files[id].status    = Uploader.FILE_ERROR;
-					_files[id].error	 = 'SSL self-signed sertificate error';
-					_files[id].errorCode = Uploader.ERROR_SSL;
-					_createEvent(UploaderEvent.ERROR, id);
-				}
-			}
-		}
-		
-		protected function _uploadFromLaterStack():void
-		{
-			if (_laterUploadStack.length > 0) {
-				_uploadOneFile(_laterUploadStack.shift());
-			}
-		}
-		
-		protected function _resetFileHandlers(id:String):void 
-		{
-			var file:FileReference = (_files[id].file as FileReference);
-								
-			file.removeEventListener(
-				ProgressEvent.PROGRESS,
-				_handleProgress
-			);
-			
-			file.removeEventListener(
-				DataEvent.UPLOAD_COMPLETE_DATA,
-				_handleComplete
-			);
-			
-			file.removeEventListener(
-				Event.COMPLETE,
-				_handlePartialComplete
-			);
-			
-			file.removeEventListener(
-				IOErrorEvent.IO_ERROR, 
-				_handleIOError
-			);
-			
-			file.removeEventListener(
-				SecurityErrorEvent.SECURITY_ERROR,
-				_handleSecurityError
-			);
-			
-			file.removeEventListener(
-				HTTPStatusEvent.HTTP_STATUS,
-				_handleHttpStatus
-			);
-		}
-		
-		protected function _handleSecurityError(event:SecurityErrorEvent):void
-		{
-			var id:String = _getIdByFile(event.target as FileReference);
-			if (_files[id]) {				
-				_files[id].status    = Uploader.FILE_ERROR;
-				_files[id].error	 = 'Security Error';
-				_files[id].errorCode = Uploader.ERROR_SECURITY;
-			}
-			_createEvent(UploaderEvent.ERROR, id);
-		}
-		
-		protected function _handleHttpStatus(event:HTTPStatusEvent):void
-		{
-			var id:String = _getIdByFile(event.target as FileReference);
-			if (_files[id]) {				
-				if (_files[id].status != Uploader.FILE_ERROR){
-					_files[id].status    = Uploader.FILE_ERROR;
-					_files[id].error     = 'Http Status Error';
-					_files[id].errorCode = Uploader.ERROR_HTTP;
-				}
-				_files[id].http	    = event.status;
-			}
-			_createEvent(UploaderEvent.ERROR, id);
-		}
-		
-	}
-	
-}
diff --git a/lib/flex/varien/varien/upload/UploaderEvent.as b/lib/flex/varien/varien/upload/UploaderEvent.as
deleted file mode 100644
index 444114b78ce..00000000000
--- a/lib/flex/varien/varien/upload/UploaderEvent.as
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Open Software License (OSL 3.0)
- * that is bundled with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/osl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magento.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magento.com for more information.
- *
- * @category    Mage
- * @package     Mage_Uploader
- * @copyright  Copyright (c) 2006-2020 Magento, Inc. (http://www.magento.com)
- * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
- */
-package varien.upload
-{
-	import flash.events.Event;
-
-	public class UploaderEvent extends Event
-	{		
-		/**
-		 * @eventType progress
-		 */
-		public static const PROGRESS:String 	= 'progress';
-		
-		/**
-		 * @eventType error
-		 */
-		public static const ERROR:String 		= 'error';
-
-		/**
-		 * @eventType select
-		 */
-		public static const SELECT:String 		= 'select';
-		
-		/**
-		 * @eventType complete
-		 */
-		public static const COMPLETE:String 	= 'complete';
-		
-		/**
-		 * @eventType cancel
-		 */
-		public static const CANCEL:String 		= 'cancel';
-		
-		/**
-		 * @eventType remove
-		 */
-		public static const REMOVE:String 		= 'remove';
-
-		/**
-		 * @eventType removeall
-		 */
-		public static const REMOVE_ALL:String 		= 'removeall';
-
-		protected var _data:Object;
-		
-		public function UploaderEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false)
-		{
-			super(type, bubbles, cancelable);		
-
-		}
-		
-		public function get data():Object
-		{
-			return _data;
-		}
-		
-		public function set data(value:Object):void
-		{
-			_data = value;			
-		}
-	}
-}
\ No newline at end of file
diff --git a/lib/flex/varien/varien/upload/UploaderSingle.as b/lib/flex/varien/varien/upload/UploaderSingle.as
deleted file mode 100644
index 780116373b6..00000000000
--- a/lib/flex/varien/varien/upload/UploaderSingle.as
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * Magento
- *
- * NOTICE OF LICENSE
- *
- * This source file is subject to the Open Software License (OSL 3.0)
- * that is bundled with this package in the file LICENSE.txt.
- * It is also available through the world-wide-web at this URL:
- * http://opensource.org/licenses/osl-3.0.php
- * If you did not receive a copy of the license and are unable to
- * obtain it through the world-wide-web, please send an email
- * to license@magento.com so we can send you a copy immediately.
- *
- * DISCLAIMER
- *
- * Do not edit or add to this file if you wish to upgrade Magento to newer
- * versions in the future. If you wish to customize Magento for your
- * needs please refer to http://www.magento.com for more information.
- *
- * @category    Mage
- * @package     Mage_Uploader
- * @copyright  Copyright (c) 2006-2020 Magento, Inc. (http://www.magento.com)
- * @license    http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
- */
-package varien.upload
-{
-	import flash.errors.IOError;
-	import flash.errors.IllegalOperationError;
-	import flash.events.Event;
-	import flash.net.FileReference;
-	
-	import mx.core.IMXMLObject;
-	
-	/**	 
-	 *  @eventType varien.upload.UploaderEvent.SELECT
-	 */
-	[Event(name='select', type='varien.upload.UploaderEvent')]
-	
-	public class UploaderSingle extends Uploader implements IMXMLObject
-	{
-		
-		protected var _file:FileReference;
-		
-		/**
-		 * Constructor
-		 * 
-		 * @param config configuration of uploader
-		 */
-		public function UploaderSingle(config:Object=null)
-		{
-			super(config);
-			_file	= new FileReference();
-			_file.addEventListener(Event.SELECT, _handleSelect);
-		}
-		
-		/**
-		 * Browse files for upload
-		 */
-		override public function browse():void
-		{
-			_file.browse(useTypeFilter ? getTypeFiltersArray() : null);
-		}
-		
-		override protected function _handleSelect(event:Event):void
-		{			
-			var badFile:Boolean = false;
-			var zeroSize:Boolean = false;				 
-			try {
-				_file.size;
-			} 
-			catch (exception:IllegalOperationError) {
-				badFile = true;
-			}
-			catch (exception:IOError) { // If file size == 0
-				zeroSize = true;
-			}
-			
-			if(!badFile) {
-				var id:String = _uniqueFileId(_file);
-				_files[id] = {status:Uploader.FILE_NEW, file:_file, uploadTry:0};
-				if(zeroSize) {
-					_files[id].status 	  = Uploader.FILE_ERROR;
-					_files[id].errorCode  = Uploader.ERROR_ZERO_SIZE;
-					_files[id].error	  = 'File size should be more than 0 bytes';
-				}
-			}
-			_createEvent(UploaderEvent.SELECT);
-		}
-
-	}
-	
-}