The task <ant> adds references after project implicit target is executed. In the script below <typedef> in the root project element. The following happens: - ant run is invoked - typedef is executed; myantloader is initialised - the target run is executed - antcall is executed: a) a new project for the target 'someTarget' is configured. This included executing the implicit project target. No myantloader is defined yet -> the taglib is loaded in its own classloader b) addReferences() is invoked and initialises 'myantloader' with the classloader passed from the parent project Expected: the classloader referenced as 'myantloader' is visible for the subproject's <typedef/> <project name="test" default="make" basedir="."> <typedef resource="myantlib.properties" classpath="myantlib.jar" loaderRef="myantloader"/> <target name="run"> <antcall target="someTarget" inheritRefs="true"/> </target> <target name="someTarget"> </target> </project>