diff --git a/builtin-checkout.c b/builtin-checkout.c
index 283831e..d5f0930 100644
--- a/builtin-checkout.c
+++ b/builtin-checkout.c
@@ -226,24 +226,25 @@
 		refresh_cache(REFRESH_QUIET);
 
 		if (unmerged_cache()) {
-			ret = opts->merge ? -1 :
-				error("you need to resolve your current index first");
-		} else {
-			topts.update = 1;
-			topts.merge = 1;
-			topts.gently = opts->merge;
-			topts.verbose_update = !opts->quiet;
-			topts.fn = twoway_merge;
-			topts.dir = xcalloc(1, sizeof(*topts.dir));
-			topts.dir->show_ignored = 1;
-			topts.dir->exclude_per_dir = ".gitignore";
-			tree = parse_tree_indirect(old->commit->object.sha1);
-			init_tree_desc(&trees[0], tree->buffer, tree->size);
-			tree = parse_tree_indirect(new->commit->object.sha1);
-			init_tree_desc(&trees[1], tree->buffer, tree->size);
-			ret = unpack_trees(2, trees, &topts);
+			error("you need to resolve your current index first");
+			return 1;
 		}
-		if (ret) {
+
+		/* 2-way merge to the new branch */
+		topts.update = 1;
+		topts.merge = 1;
+		topts.gently = opts->merge;
+		topts.verbose_update = !opts->quiet;
+		topts.fn = twoway_merge;
+		topts.dir = xcalloc(1, sizeof(*topts.dir));
+		topts.dir->show_ignored = 1;
+		topts.dir->exclude_per_dir = ".gitignore";
+		tree = parse_tree_indirect(old->commit->object.sha1);
+		init_tree_desc(&trees[0], tree->buffer, tree->size);
+		tree = parse_tree_indirect(new->commit->object.sha1);
+		init_tree_desc(&trees[1], tree->buffer, tree->size);
+
+		if (unpack_trees(2, trees, &topts)) {
 			/*
 			 * Unpack couldn't do a trivial merge; either
 			 * give up or do a real merge, depending on
