diff --git a/builtin/grep.c b/builtin/grep.c
index 43af5b744fc..c86a142f308 100644
--- a/builtin/grep.c
+++ b/builtin/grep.c
@@ -872,6 +872,9 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
 		if (len > 4 && is_dir_sep(pager[len - 5]))
 			pager += len - 4;
 
+		if (opt.ignore_case && !strcmp("less", pager))
+			string_list_append(&path_list, "-I");
+
 		if (!strcmp("less", pager) || !strcmp("vi", pager)) {
 			struct strbuf buf = STRBUF_INIT;
 			strbuf_addf(&buf, "+/%s%s",