 			this.fileRefList.addEventListener(Event.CANCEL, cancelEvent);
 			this.fileRefList.addEventListener(Event.SELECT, selectEvent);
 
-			this.fileRef = new FileReference();
-			this.fileRef.addEventListener(Event.CANCEL, cancelEvent);
-			this.fileRef.addEventListener(Event.SELECT, selectEvent);
+			initSingleFileReference();
 
 			this.files = new Dictionary();
 

		private var id:String;
		private var fileFilters:Array;
		private var multipleFiles:Boolean;
		private var fileRef:FileReference;

		/**

			}

			if (this.multipleFiles) {
				for (var i:Number = 0; i < this.fileRefList.fileList.length; i++) {
					processFile(new File("file_" + (this.idCounter++), this.fileRefList.fileList[i]));
				}
			} else {
				processFile(new File("file_" + (this.idCounter++), this.fileRef));
				this.fileRefArray.push(this.fileRef);
				initSingleFileReference();
			}

			this.fireEvent("SelectFiles", selectedFiles);
		}

		/**
		 * Sefnd out all stage events to page level JS inorder to fake click, hover etc.
		 *
		 * @param e Event object.
		 */
