 					{
 						//add these folders after everything else because we'll
 						//use the -C option
-						selfFolders.push(srcFile);
+						cOptionFolders.push(new FolderToAddWithCOption(srcFile, null));
 						continue;
 					}
-					else if(destPath == path.basename(srcFile))
+					else if(destPath == ".")
 					{
 						//add these folders after everything else because we'll
 						//use the -C option
-						selfFolders.push(srcFile);
+						cOptionRootFolders.push(srcFile);
 						continue;
 					}
-					else if(destPath == ".")
+					else if(canUseCOptionForFolder(srcFile, destPath))
 					{
 						//add these folders after everything else because we'll
 						//use the -C option
-						rootFolders.push(srcFile);
+						cOptionFolders.push(new FolderToAddWithCOption(srcFile, destPath));
 						continue;
 					}
 				}


		protected static function parseFiles(files:Array, result:Array):void
		{
			var selfFolders:Array = [];
			var rootFolders:Array = [];
			var count:int = files.length;
			for(var i:int = 0; i < count; i++)
			{

			}
		}
	}
}

class FolderToAddWithCOption {
	public function FolderToAddWithCOption(srcPath:String, destPath:String)
	{
		this.srcPath = srcPath;
		this.destPath = destPath;
	}

	public var srcPath:String;
	public var destPath:String; 
}