--- E:\src\extern\nant\src\NAnt.Core\aa\FileSet.cs	Sun Dec 28 16:44:59 2003
+++ E:\src\extern\nant\src\NAnt.Core\Types\FileSet.cs	Mon Jan 19 14:39:21 2004
@@ -453,7 +468,45 @@
             // ensure that scanning will happen again for each use
             _hasScanned = false;
         }
-
+      
+        public override void MergeWith(DataTypeBase with) {
+            if(!(with is FileSet))
+                throw new BuildException(string.Format("Could not append {0} to FileSet.",with.GetType().Name), Location);
+            FileSet sec = (FileSet)with;
+            bool reloc = sec.BaseDirectory.FullName != BaseDirectory.FullName;
+            foreach(string fname in sec.Excludes) {
+                string relname=fname;
+                if(reloc) {
+                    relname = Path.Combine(sec.BaseDirectory.FullName,fname);
+                }
+                if(! Excludes.Contains(relname)) {
+                    Excludes.Add(relname);
+                }
+            }							
+            foreach(string fname in sec.AsIs) {
+                string relname=fname;
+                if(reloc) {
+                    relname = Path.Combine(sec.BaseDirectory.FullName,fname);
+                }
+                if(! AsIs.Contains(relname)) {
+                    AsIs.Add(relname);
+                }
+            }				
+            foreach(string fname in sec.PathFiles) {
+                PathFiles.Add(fname);
+            } 
+            foreach(string fname in sec.Includes) {
+                string relname=fname;
+                if(reloc) {
+                    relname = Path.Combine(sec.BaseDirectory.FullName,fname);
+                }
+                if(! Includes.Contains(relname)) {
+                    Includes.Add(relname);
+                }
+            }				
+            Reset();
+        }
+		
         #endregion Override implementation of DataTypeBase
 
         #region Public Instance Methods
 
