diff --git a/bisect.c b/bisect.c
index c43c120bde..18f9fa4062 100644
--- a/bisect.c
+++ b/bisect.c
@@ -771,7 +771,7 @@ static int check_ancestors(const char *prefix)
 	/* Clean up objects used, as they will be reused. */
 	for (i = 0; i < pending_copy.nr; i++) {
 		struct object *o = pending_copy.objects[i].item;
-		unparse_commit((struct commit *)o);
+		clear_commit_marks((struct commit *)o, ALL_REV_FLAGS);
 	}
 
 	return res;
diff --git a/commit.c b/commit.c
index 8f6b703c55..aa3b35b6a8 100644
--- a/commit.c
+++ b/commit.c
@@ -316,26 +316,6 @@ int parse_commit(struct commit *item)
 	return ret;
 }
 
-static void unparse_commit_list(struct commit_list *list)
-{
-	for (; list; list = list->next)
-		unparse_commit(list->item);
-}
-
-void unparse_commit(struct commit *item)
-{
-	item->object.flags = 0;
-	item->object.used = 0;
-	if (item->object.parsed) {
-		item->object.parsed = 0;
-		if (item->parents) {
-			unparse_commit_list(item->parents);
-			free_commit_list(item->parents);
-			item->parents = NULL;
-		}
-	}
-}
-
 struct commit_list *commit_list_insert(struct commit *item, struct commit_list **list_p)
 {
 	struct commit_list *new_list = xmalloc(sizeof(struct commit_list));
diff --git a/commit.h b/commit.h
index f3eaf1d048..ba9f63813e 100644
--- a/commit.h
+++ b/commit.h
@@ -40,8 +40,6 @@ int parse_commit_buffer(struct commit *item, void *buffer, unsigned long size);
 
 int parse_commit(struct commit *item);
 
-void unparse_commit(struct commit *item);
-
 struct commit_list * commit_list_insert(struct commit *item, struct commit_list **list_p);
 unsigned commit_list_count(const struct commit_list *l);
 struct commit_list * insert_by_date(struct commit *item, struct commit_list **list);