Index: solr/common-build.xml
===================================================================
--- solr/common-build.xml	(revision 1243704)
+++ solr/common-build.xml	(working copy)
@@ -226,8 +226,9 @@
   <target name="jar-src" depends="init">
   	<jarify basedir="${src.dir}"
             destfile="${build.dir}/${final.name}-src.jar"
+            title="Apache Solr Search Server: ${ant.project.name}"
+            metainf.source.dir="${common-solr.dir}"
             implementation.title="org.apache.solr"
-            metainf.source.dir="${common-solr.dir}"
             spec.version="${solr.spec.version}"/>
   </target>
 
Index: solr/webapp/build.xml
===================================================================
--- solr/webapp/build.xml	(revision 1243704)
+++ solr/webapp/build.xml	(working copy)
@@ -46,9 +46,11 @@
           outputproperty="svnversion" failifexecutionfails="false">
       <arg line="."/>
     </exec>
-    <build-manifest title="Apache Solr Search Server"
-                    implementation.title="org.apache.solr"
-                    spec.version="${solr.spec.version}"/>
+    <antcall target="build-manifest">
+      <param name="title" value="Apache Solr Search Server"/>
+      <param name="implementation.title" value="org.apache.solr"/>
+      <param name="spec.version" value="${solr.spec.version}"/>
+    </antcall>
     <ant dir="${common-solr.dir}" inheritall="false" target="contribs-add-to-war"/>
     <war destfile="${dist}/apache-solr-${version}${solr.war.suffix}.war"
          webxml="web/WEB-INF/web.xml"
Index: modules/facet/build.xml
===================================================================
--- modules/facet/build.xml	(revision 1243704)
+++ modules/facet/build.xml	(working copy)
@@ -64,8 +64,9 @@
   
   <target name="jar-examples" depends="compile-examples">
     <jarify basedir="${build.dir}/classes/examples" 
-          destfile="${build.dir}/${final.name}-examples.jar" 
-          title="Lucene Search Engine: ${ant.project.name}-examples">
+            destfile="${build.dir}/${final.name}-examples.jar" 
+            title="Lucene Search Engine: ${ant.project.name}-examples"
+            manifest.file="${build.dir}/EXAMPLE-MANIFEST.MF">
       <fileset dir="src/examples" />
     </jarify>
   </target>
Index: lucene/common-build.xml
===================================================================
--- lucene/common-build.xml	(revision 1243704)
+++ lucene/common-build.xml	(working copy)
@@ -178,7 +178,7 @@
   </condition>
   <property name="junit.parallel.selector" value="org.apache.lucene.util.LuceneJUnitDividingSelector"/>
 
-  <property name="manifest.file" location="${common.dir}/build/MANIFEST.MF"/>
+  <property name="manifest.file" location="${build.dir}/MANIFEST.MF"/>
 
   <!-- 
     we attempt to exec svnversion to get details build information
@@ -381,12 +381,16 @@
       </artifact:deploy>
     </sequential>
   </macrodef>
-	
-  <macrodef name="build-manifest" description="Builds a manifest file">
-  	<attribute name="title"/>
-    <attribute name="implementation.title"/>
-    <attribute name="spec.version"/>
+  
+  <target name="build-manifest">
     <sequential>
+      <available file="${manifest.file}" property="manifest.file.exists"/>
+      <antcall target="build-manifest-if-necessary"/>
+    </sequential>
+  </target>
+  
+  <target name="build-manifest-if-necessary" unless="manifest.file.exists">
+    <sequential>
       <manifest file="${manifest.file}">
         <!--
         http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#JAR%20Manifest
@@ -408,13 +412,13 @@
              NOTE: we don't use section info because all of our manifest data
              applies to the entire jar/war ... no package specific info.
         -->
-        <attribute name="Extension-Name" value="@{implementation.title}"/>
-        <attribute name="Specification-Title" value="@{title}"/>
+        <attribute name="Extension-Name" value="${implementation.title}"/>
+        <attribute name="Specification-Title" value="${title}"/>
         <!-- spec version must match "digit+{.digit+}*" -->
-        <attribute name="Specification-Version" value="@{spec.version}"/>
+        <attribute name="Specification-Version" value="${spec.version}"/>
         <attribute name="Specification-Vendor"
                    value="The Apache Software Foundation"/>
-        <attribute name="Implementation-Title" value="@{implementation.title}"/>
+        <attribute name="Implementation-Title" value="${implementation.title}"/>
         <!-- impl version can be any string -->
         <attribute name="Implementation-Version"
                    value="${version} ${svnversion} - ${user.name} - ${DSTAMP} ${TSTAMP}"/>
@@ -424,7 +428,7 @@
         <attribute name="X-Compile-Target-JDK" value="${javac.target}"/>
       </manifest>
     </sequential>
-  </macrodef>
+  </target>
 	
   <macrodef name="jarify" description="Builds a JAR file">
   	<attribute name="basedir" default="${build.dir}/classes/java"/>
@@ -434,6 +438,7 @@
     <attribute name="metainf.source.dir" default="${common.dir}"/>
     <attribute name="implementation.title" default="org.apache.lucene"/>
     <attribute name="spec.version" default="${spec.version}"/>
+    <attribute name="manifest.file" default="${manifest.file}"/>
     <element name="nested" optional="true" implicit="true"/>
     <sequential>
       <!-- If possible, include the svnversion -->
@@ -442,13 +447,16 @@
         <arg line="."/>
       </exec>
       
-      <build-manifest title="@{title}"
-                      implementation.title="@{implementation.title}"
-                      spec.version="@{spec.version}"/>
-    	
+      <antcall target="build-manifest">
+        <param name="title" value="@{title}"/>
+        <param name="implementation.title" value="@{implementation.title}"/>
+        <param name="spec.version" value="@{spec.version}"/>
+        <param name="manifest.file" value="@{manifest.file}"/>
+      </antcall>
+
       <jar destfile="@{destfile}"
            basedir="@{basedir}"
-           manifest="${manifest.file}"
+           manifest="@{manifest.file}"
            excludes="@{excludes}">
         <metainf dir="@{metainf.source.dir}" includes="LICENSE.txt,NOTICE.txt"/>
         <nested />
