Index: maven-compiler-plugin-2.0.2/src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java
===================================================================
--- maven-compiler-plugin-2.0.2/src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java	(revision 764661)
+++ maven-compiler-plugin-2.0.2/src/main/java/org/apache/maven/plugin/AbstractCompilerMojo.java	(working copy)
@@ -302,6 +302,20 @@
         compilerConfiguration.setClasspathEntries( getClasspathElements() );
 
         compilerConfiguration.setSourceLocations( compileSourceRoots );
+        {// XXX hot fix
+            if (compilerArguments == null) {
+                compilerArguments = new LinkedHashMap();
+            }
+            StringBuilder b = new StringBuilder();
+            Iterator it = compileSourceRoots.iterator();
+            while (it.hasNext()) {
+                if (b.length() > 0) {
+                    b.append(File.pathSeparatorChar);
+                }
+                b.append(it.next());
+            }
+            compilerArguments.put("-sourcepath", b.toString());
+        }
 
         compilerConfiguration.setOptimize( optimize );
 
@@ -451,35 +465,35 @@
                 getLog().debug( " " + root );
             }
 
-            if ( fork )
+            try
             {
-                try
+                if ( fork )
                 {
                     if ( compilerConfiguration.getExecutable() != null )
                     {
                         getLog().debug( "Excutable: " );
                         getLog().debug( " " + compilerConfiguration.getExecutable() );
                     }
+                }
 
-                    String[] cl = compiler.createCommandLine( compilerConfiguration );
-                    if ( cl != null && cl.length > 0 )
+                String[] cl = compiler.createCommandLine( compilerConfiguration );
+                if ( cl != null && cl.length > 0 )
+                {
+                    StringBuffer sb = new StringBuffer();
+                    sb.append( cl[0] );
+                    for ( int i = 1; i < cl.length; i++ )
                     {
-                        StringBuffer sb = new StringBuffer();
-                        sb.append( cl[0] );
-                        for ( int i = 1; i < cl.length; i++ )
-                        {
-                            sb.append( " " );
-                            sb.append( cl[i] );
-                        }
-                        getLog().debug( "Command line options:" );
-                        getLog().debug( sb );
+                        sb.append( " " );
+                        sb.append( cl[i] );
                     }
+                    getLog().debug( "Command line options:" );
+                    getLog().debug( sb );
                 }
-                catch ( CompilerException ce )
-                {
-                    getLog().debug( ce );
-                }
             }
+            catch ( CompilerException ce )
+            {
+                getLog().debug( ce );
+            }
         }
 
         // ----------------------------------------------------------------------

