diff --git a/build.xml b/build.xml
index d61fac5854fad22abbc4adc636873543df4c9f8e..e48f2b4f78d1c1cbf7d9ae30b4fa45ebcbc63146 100644
--- a/build.xml
+++ b/build.xml
@@ -12,15 +12,12 @@
     <tstamp />
     <property name="name" value="artemis" />
     <property name="version" value="live" />
-
     <property name="build.compiler" value="modern" />
-
     <property name="classpath" value="" />
-
     <property name="src.dir" value="./" />
     <property name="docs.dir" value="./docs" />
 
-    <property name="packages" value="uk.* diana.*" />
+    <property name="packages" value="uk.*" />
 
     <property name="build.dir" value="./ant-build" />
     <!-- Subdirectories for main source and classes -->
@@ -37,13 +34,26 @@
     <property name="build.dest.javadocs" value="${build.dest.docs}/api" />
 
     <!-- Subdirectory for libraries used during build -->
-    <property name="build.lib" value="${build.dir}/lib" />
+    <property name="build.src.main.lib" value="${build.src.main}/lib" />
 
     <!-- Subdirectory for test reports -->
     <property name="reports.tests" value="./reports/tests" />
 
     <property name="dist.root" value="./dist" />
     <property name="dist.dir" value="${dist.root}/${name}-${version}" />
+  	
+    <!-- Compile classpath -->
+    <path id="compile.classpath">
+        <!-- Main classes from build -->
+        <pathelement path="${build.src.main}" />
+        <!-- Dependency classes -->
+        <fileset dir="${build.src.main}/lib">
+        	 <include name="**.jar" />
+        </fileset>
+        <fileset dir="${build.src.main}/lib">
+        	 <include name="**/*.jar" />
+        </fileset>
+    </path>
   </target>
 
   <!-- Prepares the build directory -->
@@ -63,12 +73,12 @@
     <mkdir dir="${build.src.docs}" />
     <mkdir dir="${build.dest.docs}" />
     <mkdir dir="${build.dest.javadocs}" />
-    <mkdir dir="${build.lib}" />
+    <mkdir dir="${build.src.main.lib}" />
 
     <!-- Copies src files -->
     <copy todir="${build.src.main}">
       <fileset dir="${src.dir}">
-        <include name="*.class" />
+      	<exclude name="**/CVS/**" />
       </fileset>
     </copy>
 
@@ -90,16 +100,33 @@
 
   <target name="prepare-src" depends="init,prepare-core" />
 
+	<!-- Compile IDL stub classes into the build directory (jar preparation) -->
+  <target name="compile-idl" depends="init,prepare-core">
+  	<exec executable="idlj" dir="${build.src.main}">
+  		   <arg line="-Icorba corba/types.idl" />
+  		 </exec>
+  	<exec executable="idlj" dir="${build.src.main}">
+  		   <arg line="-Icorba corba/nsdb.idl" />
+  		 </exec>
+  	<exec executable="idlj" dir="${build.src.main}">
+  		   <arg line="-Icorba corba/nsdb_write.idl" />
+  		 </exec> 
+  	<exec executable="idlj" dir="${build.src.main}">
+  		   <arg line="-Icorba corba/seqdb.idl" />
+  		 </exec>
+  </target>
+	
   <!-- Compiles the source directory -->
-  <target name="compile" depends="init,prepare-src">
+  <target name="compile" depends="init,compile-idl,prepare-src">
     <javac
-      srcdir="${build.src.main}"
+    	  srcdir="${build.src.main}"
       destdir="${build.dest.main}"
-      classpath="${classpath}"
+    	  excludes="nsdb/**,seqdb/**,type/**,uk/ac/sanger/artemis/ExternalProgramUtils.java"
       deprecation="false"
       depend="no"
-      debug="true"
-    />
+      debug="true">
+    	  <classpath refid="compile.classpath"/>
+    </javac>
   </target>
 
   <!-- Compiles the tests directory -->