diff --git a/applets/usage.h b/applets/usage.h
index bf2f7bd..5712c44 100644
--- a/applets/usage.h
+++ b/applets/usage.h
@@ -522,6 +522,7 @@
 	"\t-H\tprefix output lines with filename where match was found\n" \
 	"\t-h\tsuppress the prefixing filename on output\n" \
 	"\t-i\tignore case distinctions\n" \
+	"\t-l\tlist names of files that match\n" \
 	"\t-n\tprint line number with output lines\n" \
 	"\t-q\tbe quiet. Returns 0 if result was found, 1 otherwise\n" \
 	"\t-v\tselect non-matching lines\n" \
diff --git a/findutils/grep.c b/findutils/grep.c
index 8c67976..b519adf 100644
--- a/findutils/grep.c
+++ b/findutils/grep.c
@@ -41,6 +41,7 @@
 static int be_quiet          = 0;
 static int invert_search     = 0;
 static int suppress_err_msgs = 0;
+static int files_that_match  = 0;
 
 #ifdef BB_FEATURE_GREP_CONTEXT
 extern char *optarg; /* in getopt.h */
@@ -105,7 +106,7 @@
 
 			/* otherwise, keep track of matches and print the matched line */
 			nmatches++;
-			if (!print_count_only) {
+			if (print_count_only==0 && files_that_match==0) {
 #ifdef BB_FEATURE_GREP_CONTEXT
 				int prevpos = (curpos == 0) ? lines_before - 1 : curpos - 1;
 
@@ -163,11 +164,18 @@
 	}
 
 	/* special-case post processing */
-	if (print_count_only) {
+	if (files_that_match) {
+	    if (nmatches > 0) {
+		printf("%s", cur_file);
+		if (nmatches)
+		    printf(":%d", nmatches);
+		printf("\n");
+	    }
+	} else if (print_count_only) {
 		if (print_filename)
 			printf("%s:", cur_file);
 		printf("%i\n", nmatches);
-	}
+	} 
 
 	/* remember if we matched */
 	if (nmatches != 0)
@@ -183,7 +191,7 @@
 #endif
 
 	/* do normal option parsing */
-	while ((opt = getopt(argc, argv, "iHhnqvsc"
+	while ((opt = getopt(argc, argv, "iHhlnqvsc"
 #ifdef BB_FEATURE_GREP_CONTEXT
 "A:B:C:"
 #endif
@@ -192,6 +200,9 @@
 			case 'i':
 				ignore_case++;
 				break;
+			case 'l':
+				files_that_match++;
+				break;
 			case 'H':
 				print_filename++;
 				break;
@@ -242,7 +253,7 @@
 		show_usage();
 
 	/* sanity check */
-	if (print_count_only || be_quiet) {
+	if (print_count_only || be_quiet || files_that_match) {
 		print_line_num = 0;
 #ifdef BB_FEATURE_GREP_CONTEXT
 		lines_before = 0;
diff --git a/grep.c b/grep.c
index 8c67976..b519adf 100644
--- a/grep.c
+++ b/grep.c
@@ -41,6 +41,7 @@
 static int be_quiet          = 0;
 static int invert_search     = 0;
 static int suppress_err_msgs = 0;
+static int files_that_match  = 0;
 
 #ifdef BB_FEATURE_GREP_CONTEXT
 extern char *optarg; /* in getopt.h */
@@ -105,7 +106,7 @@
 
 			/* otherwise, keep track of matches and print the matched line */
 			nmatches++;
-			if (!print_count_only) {
+			if (print_count_only==0 && files_that_match==0) {
 #ifdef BB_FEATURE_GREP_CONTEXT
 				int prevpos = (curpos == 0) ? lines_before - 1 : curpos - 1;
 
@@ -163,11 +164,18 @@
 	}
 
 	/* special-case post processing */
-	if (print_count_only) {
+	if (files_that_match) {
+	    if (nmatches > 0) {
+		printf("%s", cur_file);
+		if (nmatches)
+		    printf(":%d", nmatches);
+		printf("\n");
+	    }
+	} else if (print_count_only) {
 		if (print_filename)
 			printf("%s:", cur_file);
 		printf("%i\n", nmatches);
-	}
+	} 
 
 	/* remember if we matched */
 	if (nmatches != 0)
@@ -183,7 +191,7 @@
 #endif
 
 	/* do normal option parsing */
-	while ((opt = getopt(argc, argv, "iHhnqvsc"
+	while ((opt = getopt(argc, argv, "iHhlnqvsc"
 #ifdef BB_FEATURE_GREP_CONTEXT
 "A:B:C:"
 #endif
@@ -192,6 +200,9 @@
 			case 'i':
 				ignore_case++;
 				break;
+			case 'l':
+				files_that_match++;
+				break;
 			case 'H':
 				print_filename++;
 				break;
@@ -242,7 +253,7 @@
 		show_usage();
 
 	/* sanity check */
-	if (print_count_only || be_quiet) {
+	if (print_count_only || be_quiet || files_that_match) {
 		print_line_num = 0;
 #ifdef BB_FEATURE_GREP_CONTEXT
 		lines_before = 0;
diff --git a/include/usage.h b/include/usage.h
index bf2f7bd..5712c44 100644
--- a/include/usage.h
+++ b/include/usage.h
@@ -522,6 +522,7 @@
 	"\t-H\tprefix output lines with filename where match was found\n" \
 	"\t-h\tsuppress the prefixing filename on output\n" \
 	"\t-i\tignore case distinctions\n" \
+	"\t-l\tlist names of files that match\n" \
 	"\t-n\tprint line number with output lines\n" \
 	"\t-q\tbe quiet. Returns 0 if result was found, 1 otherwise\n" \
 	"\t-v\tselect non-matching lines\n" \
diff --git a/usage.h b/usage.h
index bf2f7bd..5712c44 100644
--- a/usage.h
+++ b/usage.h
@@ -522,6 +522,7 @@
 	"\t-H\tprefix output lines with filename where match was found\n" \
 	"\t-h\tsuppress the prefixing filename on output\n" \
 	"\t-i\tignore case distinctions\n" \
+	"\t-l\tlist names of files that match\n" \
 	"\t-n\tprint line number with output lines\n" \
 	"\t-q\tbe quiet. Returns 0 if result was found, 1 otherwise\n" \
 	"\t-v\tselect non-matching lines\n" \
