 				this.cleanOutputDirectory(outputDirectory);
 			}
 
+			if(this._moduleOutputPaths != null) {
+				var moduleCount:int = this._moduleOutputPaths.length;
+				for(var i:int = 0; i < moduleCount; i++)
+				{
+					var moduleOutputPath:String = this._moduleOutputPaths[i];
+					if(fs.existsSync(moduleOutputPath))
+					{
+						try
+						{
+							fs.unlinkSync(moduleOutputPath);
+						}
+						catch(e:Error)
+						{
+							var errorText:String = "Failed to clean project because an I/O exception occurred while deleting file: " + moduleOutputPath;
+							if(this._verbose)
+							{
+								errorText += "\n" + String(e);
+							}
+							throw new Error(errorText);
+						}
+					}
+				}
+			}
+
 			if(this._workerOutputPaths != null) {
 				var workerCount:int = this._workerOutputPaths.length;
 				for(var i:int = 0; i < workerCount; i++)

		private var _allWorkerCompilerArgs:Array;
		private var _airDescriptors:Vector.<String> = null;
		private var _outputPath:String = null;
		private var _workerOutputPaths:Array;
		private var _mainFile:String = null;
		private var _forceDebug:* = undefined;

					var output:String = "";
					if (ModuleFields.OUTPUT in module) {
						output = module[ModuleFields.OUTPUT];
						this._moduleOutputPaths.push(output);
					}
					if (output.length > 0) {
						moduleCompilerArgs.push("--" + CompilerOptions.OUTPUT + "=" + output);
