diff -r apache-ivy-2.0.0-beta1/doc/use/buildlist.html apache-ivy-2.0.0-beta1-mod/doc/use/buildlist.html
102a103
>     <tr><td>restartFrom</td><td><span class="since">since 2.0</span> The name of the module which should be considered as the starting point in the buildlist. This allows for the build to be started at any point in the dependency chain. <br/></td><td>No. Defaults to no restart point (all modules are used in the build list).</td></tr>
diff -r apache-ivy-2.0.0-beta1/src/java/org/apache/ivy/ant/IvyBuildList.java apache-ivy-2.0.0-beta1-mod/src/java/org/apache/ivy/ant/IvyBuildList.java
75a76,77
>     private String restartFrom = "*";
>     
172a175,181
>         Set restartFromModuleNames = new LinkedHashSet();
>         if (!"*".equals(restartFrom)) {
>             StringTokenizer st = new StringTokenizer(restartFrom, delimiter);
>             // Only accept one (first) module
>             restartFromModuleNames.add(st.nextToken());
>         }
> 
216a226,227
>         List restartFromModuleDescriptors = convertModuleNamesToModuleDescriptors(mdsMap, restartFromModuleNames,
>             "restartFrom");
238a250,269
> 
>         // Remove modules that are before the restartFrom point
>         //     Independant modules (without valid ivy file) can not be addressed
>         //     so they are not removed from build path.
>         if (!restartFromModuleDescriptors.isEmpty()) {
>             boolean foundRestartFrom = false;
>             List keptModules = new ArrayList();
>             ModuleDescriptor restartFromModuleDescriptor = (ModuleDescriptor)restartFromModuleDescriptors.get(0);
>             for (ListIterator iter = sortedModules.listIterator(); iter.hasNext();) {
>                 ModuleDescriptor md = (ModuleDescriptor) iter.next();
>                 if (md.equals(restartFromModuleDescriptor)) {
>                     foundRestartFrom = true;
>                 }
>                 if (foundRestartFrom) {
>                     keptModules.add(md);
>                 }
>             }
>             sortedModules = keptModules;
>         }
> 
450a482,489
>     public String getRestartFrom() {
>         return restartFrom;
>     }
> 
>     public void setRestartFrom(String restartFrom) {
>         this.restartFrom = restartFrom;
>     }
> 
diff -r apache-ivy-2.0.0-beta1/test/java/org/apache/ivy/ant/IvyBuildListTest.java apache-ivy-2.0.0-beta1-mod/test/java/org/apache/ivy/ant/IvyBuildListTest.java
386a387,420
>     public void testRestartFrom() {
>         Project p = new Project();
> 
>         IvyBuildList buildlist = new IvyBuildList();
>         buildlist.setProject(p);
>         buildlist.setRestartFrom("A");
> 
>         FileSet fs = new FileSet();
>         fs.setDir(new File("test/buildlist"));
>         fs.setIncludes("**/build.xml");
>         buildlist.addFileset(fs);
> 
>         buildlist.setReference("ordered.build.files");
> 
>         buildlist.execute();
> 
>         Object o = p.getReference("ordered.build.files");
>         assertNotNull(o);
>         assertTrue(o instanceof Path);
> 
>         Path path = (Path) o;
>         String[] files = path.list();
>         assertNotNull(files);
>         
>         assertEquals(3, files.length);
> 
>         assertEquals(new File("test/buildlist/A/build.xml").getAbsolutePath(), new File(files[0])
>                 .getAbsolutePath());
>         assertEquals(new File("test/buildlist/D/build.xml").getAbsolutePath(), new File(files[1])
>                 .getAbsolutePath());
>         assertEquals(new File("test/buildlist/E/build.xml").getAbsolutePath(), new File(files[2])
>                 .getAbsolutePath());
>     }
> 
