diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/StashApplyCommandTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/StashApplyCommandTest.java
index 4dfac14..a81beb0 100644
--- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/StashApplyCommandTest.java
+++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/api/StashApplyCommandTest.java
@@ -543,4 +543,19 @@ public void noStashedCommits() throws Exception {
 			assertNotNull(e.getMessage());
 		}
 	}
+
+	@Test
+	public void testApplyStashWithDeletedFile() throws Exception {
+		File file = writeTrashFile("file", "content");
+		git.add().addFilepattern("file").call();
+		git.commit().setMessage("x").call();
+		file.delete();
+		git.rm().addFilepattern("file").call();
+		git.stashCreate().call();
+		file.delete();
+
+		git.stashApply().setStashRef("stash@{0}").call();
+
+		assertFalse(file.exists());
+	}
 }
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
index 2ea1160..710996d 100644
--- a/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
+++ b/org.eclipse.jgit/src/org/eclipse/jgit/merge/ResolveMerger.java
@@ -488,7 +488,11 @@ private boolean processEntry(CanonicalTreeParser base,
 				return true;
 			} else if (modeT == 0 && modeB != 0) {
 				// we want THEIRS ... but THEIRS contains the deletion of the
-				// file
+				// file. Also, do not complain if the file is already deleted
+				// locally. This complements the test in isWorktreeDirty() for
+				// the same case.
+				if (tw.getTreeCount() > T_FILE && tw.getRawMode(T_FILE) == 0)
+					return true;
 				toBeDeleted.add(tw.getPathString());
 				return true;
 			}
