Index: src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java
===================================================================
--- src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java	(revision 904706)
+++ src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java	(working copy)
@@ -308,6 +308,13 @@
     private File buildOutputDirectory;
 
     /**
+     * The default output directory, doesn't affect the real compile paths of folders 
+     * 
+     * @parameter expression="${fakeBuildOutputDirectory}" default-value="false"
+     */
+    private boolean fakeBuildOutputDirectory;
+
+    /**
      * The version of WTP for which configuration files will be generated. The default value is "none" (don't generate
      * WTP configuration), supported versions are "R7", "1.0", and "1.5"
      * 
@@ -591,6 +598,26 @@
     }
 
     /**
+     * Setter for <code>fakeBuildOutputDirectory</code>.
+     * 
+     * @param fakeBuildOutputDirectory Whether the buildOutputDirectory is just for faking Eclipse.
+     */
+    public final void setFakeBuildOutputDirectory( boolean fakeBuildOutputDirectory )
+    {
+        this.fakeBuildOutputDirectory = fakeBuildOutputDirectory;
+    }
+
+    /**
+     * Getter for <code>fakeBuildOutputDirectory</code>.
+     * 
+     * @return Returns the fakeBuildOutputDirectory.
+     */
+    public final boolean getFakeBuildOutputDirectory()
+    {
+        return fakeBuildOutputDirectory;
+    }
+
+    /**
      * Setter for <code>buildOutputDirectory</code>.
      * 
      * @param buildOutputDirectory The buildOutputDirectory to set.
@@ -1219,7 +1246,7 @@
 
         // build a list of UNIQUE source dirs (both src and resources) to be
         // used in classpath and wtpmodules
-        EclipseSourceDir[] sourceDirs = buildDirectoryList( executedProject, eclipseProjectDir, buildOutputDirectory );
+        EclipseSourceDir[] sourceDirs = buildDirectoryList( executedProject, eclipseProjectDir, buildOutputDirectory, fakeBuildOutputDirectory );
 
         EclipseWriterConfig config = new EclipseWriterConfig();
 
@@ -1505,7 +1532,7 @@
         }
     }
 
-    public final EclipseSourceDir[] buildDirectoryList( MavenProject project, File basedir, File buildOutputDirectory )
+    public final EclipseSourceDir[] buildDirectoryList( MavenProject project, File basedir, File buildOutputDirectory, boolean fakeBuildOutputDirectory )
         throws MojoExecutionException
     {
         File projectBaseDir = project.getFile().getParentFile();
@@ -1513,11 +1540,22 @@
         String mainOutput = IdeUtils.toRelativeAndFixSeparator( projectBaseDir, buildOutputDirectory, false );
 
         // If using the standard output location, don't mix the test output into it.
+        String sourceOutput = null;
         String testOutput = null;
         boolean useStandardOutputDir =
             buildOutputDirectory.equals( new File( project.getBuild().getOutputDirectory() ) );
-        if ( useStandardOutputDir )
+        if ( useStandardOutputDir || fakeBuildOutputDirectory )
         {
+            if ( fakeBuildOutputDirectory )
+            {
+                getLog().debug(
+                        "sourceOutput toRelativeAndFixSeparator " + projectBaseDir + " , "
+                            + project.getBuild().getOutputDirectory() );
+                sourceOutput =
+                    IdeUtils.toRelativeAndFixSeparator( projectBaseDir,
+                                                        new File( project.getBuild().getOutputDirectory() ), false );
+                getLog().debug( "sourceOutput after toRelative : " + sourceOutput );
+            }
             getLog().debug(
                             "testOutput toRelativeAndFixSeparator " + projectBaseDir + " , "
                                 + project.getBuild().getTestOutputDirectory() );
@@ -1529,10 +1567,10 @@
 
         Set mainDirectories = new LinkedHashSet();
 
-        extractSourceDirs( mainDirectories, project.getCompileSourceRoots(), basedir, projectBaseDir, false, null );
+        extractSourceDirs( mainDirectories, project.getCompileSourceRoots(), basedir, projectBaseDir, false, sourceOutput );
 
         extractResourceDirs( mainDirectories, project.getBuild().getResources(), basedir, projectBaseDir, false,
-                             mainOutput );
+        					 sourceOutput );
 
         Set testDirectories = new LinkedHashSet();
 
Index: src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginUnitTest.java
===================================================================
--- src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginUnitTest.java	(revision 904706)
+++ src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginUnitTest.java	(working copy)
@@ -100,7 +100,7 @@
         field.setAccessible( true );
         field.set( mojo, sourceExcludes );
 
-        EclipseSourceDir[] result = mojo.buildDirectoryList( project, basedir, new File( "target/classes" ) );
+        EclipseSourceDir[] result = mojo.buildDirectoryList( project, basedir, new File( "target/classes" ), false );
 
         assertEquals( "should have added 1 resource.", 1, result.length );
 
