diff --git a/mercurial/merge.py b/mercurial/merge.py
index 8269af351a64b186a575fdd492e19e28e9575397_bWVyY3VyaWFsL21lcmdlLnB5..545ec17750210b31b51261092c0f010fc9376e32_bWVyY3VyaWFsL21lcmdlLnB5 100644
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -276,7 +276,10 @@
             fcl = wctx[f]
             fco = mctx[f2]
             if mctx == actx: # backwards, use working dir parent as ancestor
-                fca = fcl.parents()[0]
+                if fcl.parents():
+                    fca = fcl.parents()[0]
+                else:
+                    fca = repo.filectx(f, fileid=nullrev)
             else:
                 fca = fcl.ancestor(fco, actx)
             if not fca:
diff --git a/tests/test-merge1.t b/tests/test-merge1.t
index 8269af351a64b186a575fdd492e19e28e9575397_dGVzdHMvdGVzdC1tZXJnZTEudA==..545ec17750210b31b51261092c0f010fc9376e32_dGVzdHMvdGVzdC1tZXJnZTEudA== 100644
--- a/tests/test-merge1.t
+++ b/tests/test-merge1.t
@@ -166,3 +166,11 @@
   +This is file b33
   $ hg status
   M b
+
+Test for issue2364
+
+  $ hg up -qC .
+  $ hg rm b
+  $ hg ci -md
+  $ hg revert -r -2 b
+  $ hg up -q -- -2