--- E:\src\extern\nant-85rc3\src\NAnt.Core\Types\FileSet.cs	Mon Apr 04 14:08:30 2005
+++ E:\src\extern\nant\src\NAnt.Core\Types\FileSet.cs	Thu May 05 09:29:17 2005
@@ -444,13 +444,13 @@
                 foreach (Include include in value) {
                     if (include.IfDefined && !include.UnlessDefined) {
                         if (include.AsIs) {
-                            logger.Debug(string.Format(CultureInfo.InvariantCulture, "Including AsIs=", include.Pattern));
+                            logger.Debug(string.Format(CultureInfo.InvariantCulture, "Including AsIs={0}", include.Pattern));
                             AsIs.Add(include.Pattern);
                         } else if (include.FromPath) {
-                            logger.Debug(string.Format(CultureInfo.InvariantCulture, "Including FromPath=", include.Pattern));
+                            logger.Debug(string.Format(CultureInfo.InvariantCulture, "Including FromPath={0}", include.Pattern));
                             PathFiles.Add(include.Pattern);
                         } else {
-                            logger.Debug(string.Format(CultureInfo.InvariantCulture, "Including pattern", include.Pattern));
+                            logger.Debug(string.Format(CultureInfo.InvariantCulture, "Including Pattern={0}", include.Pattern));
                             Includes.Add(include.Pattern);
                         }
                     }
@@ -475,7 +475,7 @@
             set {
                 foreach (Exclude exclude in value) {
                     if (exclude.IfDefined && !exclude.UnlessDefined) {
-                        logger.Debug(string.Format(CultureInfo.InvariantCulture, "Excluding pattern", exclude.Pattern));
+                        logger.Debug(string.Format(CultureInfo.InvariantCulture, "Excluding pattern={0}", exclude.Pattern));
                         Excludes.Add(exclude.Pattern);
                     }
                 }
@@ -505,17 +505,17 @@
                     if (includesFile.IfDefined && !includesFile.UnlessDefined) {
                         if (includesFile.AsIs) {
                             foreach (string pattern in includesFile.Patterns) {
-                                logger.Debug(string.Format(CultureInfo.InvariantCulture, "Including AsIs=", pattern));
+                                logger.Debug(string.Format(CultureInfo.InvariantCulture, "Including AsIs={0}", pattern));
                                 AsIs.Add(pattern);
                             }
                         } else if (includesFile.FromPath) {
                             foreach (string pattern in includesFile.Patterns) {
-                                logger.Debug(string.Format(CultureInfo.InvariantCulture, "Including FromPath=", pattern));
+                                logger.Debug(string.Format(CultureInfo.InvariantCulture, "Including FromPath={0}", pattern));
                                 PathFiles.Add(pattern);
                             }
                         } else {
                             foreach (string pattern in includesFile.Patterns) {
-                                logger.Debug(string.Format(CultureInfo.InvariantCulture, "Including Pattern=", pattern));
+                                logger.Debug(string.Format(CultureInfo.InvariantCulture, "Including Pattern={0}", pattern));
                                 Includes.Add(pattern);
                             }
                         }
@@ -534,7 +534,7 @@
                 foreach (ExcludesFile excludesFile in value) {
                     if (excludesFile.IfDefined && !excludesFile.UnlessDefined) {
                         foreach (string pattern in excludesFile.Patterns) {
-                            logger.Debug(string.Format(CultureInfo.InvariantCulture, "Excluding=", pattern));
+                            logger.Debug(string.Format(CultureInfo.InvariantCulture, "Excluding={0}", pattern));
                             Excludes.Add(pattern);
                         }
                     }
@@ -543,6 +543,21 @@
         }
 
         /// <summary>
+        /// The items to include in the fileset.
+        /// </summary>
+        [BuildElementArray("includesfileset", ElementType=typeof(IncludesFilesetElement))]
+        public IncludesFilesetElement[] IncludesFileset {
+            set {
+                foreach (IncludesFilesetElement includeSet in value){
+                        foreach (string pattern in includeSet.Fileset.FileNames) {
+                            logger.Debug(string.Format(CultureInfo.InvariantCulture, "Including from Fileset={0}", pattern));
+                            Includes.Add(pattern);
+                        }
+                }
+            }
+        }
+		
+        /// <summary>
         /// Determines the most recently modified file in the fileset (by LastWriteTime of the <see cref="FileInfo"/>).
         /// </summary>
         /// <returns>
@@ -1034,5 +1049,38 @@
 
             #endregion Override implementation of ExcludesFile
         }
+
+        public class IncludesFilesetElement : Element {
+            #region Private Instance Fields
+
+			private string  _refid;
+            private FileSet _fs = null;
+
+            #endregion Private Instance Fields
+
+            #region Public Instance Properties
+
+            [TaskAttribute("refid", Required=true)]
+            [StringValidator(AllowEmpty=false)]
+            public string RefID {
+                get { return _refid; }
+                set { _refid= value; }
+            }
+			
+            public FileSet Fileset {
+                get { return _fs; }
+            }
+
+            #endregion Public Instance Properties
+
+            #region Override implementation of Element
+
+            protected override void InitializeElement(XmlNode elementNode) {
+				_fs = (FileSet) Project.DataTypeReferences[_refid];
+            }
+
+            #endregion Override implementation of Element
+        }
+		
     }
 }
