diff --git a/src/etc/testcases/taskdefs/copy.xml b/src/etc/testcases/taskdefs/copy.xml
index 24adfd693..81785196a 100644
--- a/src/etc/testcases/taskdefs/copy.xml
+++ b/src/etc/testcases/taskdefs/copy.xml
@@ -38,12 +38,19 @@
-->
+
+
+
+
+
+
+
diff --git a/src/main/org/apache/tools/ant/taskdefs/Copy.java b/src/main/org/apache/tools/ant/taskdefs/Copy.java
index 3ac8b9226..fa574f0fe 100644
--- a/src/main/org/apache/tools/ant/taskdefs/Copy.java
+++ b/src/main/org/apache/tools/ant/taskdefs/Copy.java
@@ -326,7 +326,7 @@ public class Copy extends Task {
if (srcFiles.length > 0) {
if (file == null) {
- file = new File(srcFiles[0]);
+ file = new File(ds.getBasedir(), srcFiles[0]);
filesets.removeElementAt(0);
} else {
throw new BuildException(
diff --git a/src/testcases/org/apache/tools/ant/taskdefs/CopyTest.java b/src/testcases/org/apache/tools/ant/taskdefs/CopyTest.java
index 246ce9056..34383c728 100644
--- a/src/testcases/org/apache/tools/ant/taskdefs/CopyTest.java
+++ b/src/testcases/org/apache/tools/ant/taskdefs/CopyTest.java
@@ -122,4 +122,11 @@ public class CopyTest extends BuildFileTest {
}
}
+
+ public void testSingleFileFileset() {
+ executeTarget("test_single_file_fileset");
+ File file = new File(getProjectDir(),
+ "copytest_single_file_fileset.tmp");
+ assertTrue(file.exists());
+ }
}