Index: main/org/apache/tools/ant/taskdefs/Ant.java
===================================================================
RCS file: /home/cvspublic/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/Ant.java,v
retrieving revision 1.16
diff -u -r1.16 Ant.java
--- main/org/apache/tools/ant/taskdefs/Ant.java	2000/09/15 07:37:10	1.16
+++ main/org/apache/tools/ant/taskdefs/Ant.java	2000/09/16 17:48:39
@@ -188,6 +188,13 @@
                 target = p1.getDefaultTarget();
             }
 
+            // Are we trying to call the target in which we are defined?
+            if (p1.getBaseDir().equals(project.getBaseDir()) &&
+                p1.getProperty("ant.file").equals(project.getProperty("ant.file")) &&
+                target.equals(this.getOwningTarget().getName())) { 
+                throw new BuildException("ant task calling it's own parent");
+            }
+            
             p1.executeTarget(target);
         } finally {
             // help the gc
Index: main/org/apache/tools/ant/taskdefs/CallTarget.java
===================================================================
RCS file: /home/cvspublic/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/CallTarget.java,v
retrieving revision 1.4
diff -u -r1.4 CallTarget.java
--- main/org/apache/tools/ant/taskdefs/CallTarget.java	2000/09/15 07:37:11	1.4
+++ main/org/apache/tools/ant/taskdefs/CallTarget.java	2000/09/16 17:48:41
@@ -85,7 +85,6 @@
 
     public void init() {
         callee = (Ant) project.createTask("ant");
-        callee.setOwningTarget(target);
         callee.setTaskName(getTaskName());
         callee.setLocation(location);
         callee.init();
@@ -97,6 +96,7 @@
                                      location);
         }
         
+        callee.setOwningTarget(target);
         callee.setDir(project.getBaseDir());
         callee.setAntfile(project.getProperty("ant.file"));
         callee.setTarget(subTarget);
