exit 2 ;;
 esac
 
+# Give up if this is a baseless merge.
+if test '' = "$bases"
+then
+       exit 2
+fi
+
 git-update-index --refresh 2>/dev/null
-git-read-tree -u -m $bases $head $remotes || exit 2
+git-read-tree -u -m --aggressive $bases $head $remotes || exit 2
 echo "Trying simple merge."
 if result_tree=$(git-write-tree  2>/dev/null)
 then