diff --git a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/EarProjectConfiguratorDelegate.java b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/EarProjectConfiguratorDelegate.java
index 1fa6c00..1d244d6 100644
--- a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/EarProjectConfiguratorDelegate.java
+++ b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/EarProjectConfiguratorDelegate.java
@@ -124,7 +124,8 @@
 
     //MECLIPSEWTP-56 : application.xml should not be generated in the source directory
     boolean useBuildDirectory = MavenWtpPlugin.getDefault().getMavenWtpPreferencesManager().getPreferences(project).isApplicationXmGeneratedInBuildDirectory();
-
+    useBuildDirectory = useBuildDirectory || config.isFilteringDeploymentDescriptorsEnabled();
+    
     List<IPath> sourcePaths = new ArrayList<IPath>();
     sourcePaths.add(contentDirPath);
     
diff --git a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/MavenDeploymentDescriptorManagement.java b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/MavenDeploymentDescriptorManagement.java
index 422acb9..ee72ec2 100644
--- a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/MavenDeploymentDescriptorManagement.java
+++ b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/MavenDeploymentDescriptorManagement.java
@@ -254,11 +254,9 @@
       if(dir.isFile()) {
         if(!dir.delete()) {
           throw new IOException(NLS.bind(Messages.MavenDeploymentDescriptorManagement_Error_Deleting_Temp_Folder, dir.getAbsolutePath()));
-        } else {
-          if(!deleteDirectory(dir)) {
-            throw new IOException(NLS.bind(Messages.MavenDeploymentDescriptorManagement_Error_Deleting_Temp_Folder, dir.getAbsolutePath())); 
-          }
         }
+      } else if(!deleteDirectory(dir)) {
+          throw new IOException(NLS.bind(Messages.MavenDeploymentDescriptorManagement_Error_Deleting_Temp_Folder, dir.getAbsolutePath())); 
       }
     }
     dir.mkdir();
diff --git a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/Messages.java b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/Messages.java
index 46415a2..59fabb5 100644
--- a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/Messages.java
+++ b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/Messages.java
@@ -40,6 +40,7 @@
 	public static String MavenWtpPreferencePage_Updating_Maven_Projects_Job;
 	public static String MavenWtpPreferencePage_Updating_Maven_Projects_Monitor;
 	public static String MavenWtpPreferencePage_Using_Build_Directory;
+	public static String MavenWtpPreferencePage_Using_EAR_Build_Directory;
 	public static String MavenWtpPreferencePage_WAR_Project_Preferences;
 	public static String MavenWtpPreferencesManagerImpl_0;
 	public static String ResourceFilteringBuildParticipant_Changed_Resources_Require_Clean_Build;
diff --git a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/messages.properties b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/messages.properties
index b234992..7b62ed8 100644
--- a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/messages.properties
+++ b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/messages.properties
@@ -21,6 +21,7 @@
 MavenWtpPreferencePage_Updating_Maven_Projects_Job=Updating maven projects 
 MavenWtpPreferencePage_Updating_Maven_Projects_Monitor=Updating Maven projects
 MavenWtpPreferencePage_Using_Build_Directory=The build directory will always be used if Web resource filtering is enabled
+MavenWtpPreferencePage_Using_EAR_Build_Directory=The build directory will always be used if EAR resource filtering is enabled
 MavenWtpPreferencePage_WAR_Project_Preferences=WAR Project preferences
 MavenWtpPreferencesManagerImpl_0=Error_Saving_Preferences
 ResourceFilteringBuildParticipant_Changed_Resources_Require_Clean_Build=Changed resources require a complete clean of filtered resources of {0}
diff --git a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/preferences/MavenWtpPreferencePage.java b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/preferences/MavenWtpPreferencePage.java
index d72c9f1..d66f4fa 100644
--- a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/preferences/MavenWtpPreferencePage.java
+++ b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/internal/preferences/MavenWtpPreferencePage.java
@@ -157,6 +157,7 @@
 
     genApplicationXmlButton = new Button(earPrefGroup, SWT.CHECK);
     genApplicationXmlButton.setText(Messages.MavenWtpPreferencePage_Generate_ApplicationXml_Under_Build_Dir);
+    genApplicationXmlButton.setToolTipText(Messages.MavenWtpPreferencePage_Using_EAR_Build_Directory);
   }
 
   private void createOverridePrefs(Composite main, IProject project) {
