diff --git a/modutils/rmmod.c b/modutils/rmmod.c
index 5576eb6..3693aec 100644
--- a/modutils/rmmod.c
+++ b/modutils/rmmod.c
@@ -26,9 +26,33 @@
 #include <stdlib.h>
 #include <getopt.h>
 #include <fcntl.h>
+#include <string.h>
 #include <sys/syscall.h>
 #include "busybox.h"
 
+#ifdef CONFIG_FEATURE_2_6_MODULES
+static inline void filename2modname(char *modname, const char *filename)
+{
+	const char *afterslash;
+	unsigned int i;
+
+	afterslash = strrchr(filename, '/');
+	if (!afterslash)
+		afterslash = filename;
+	else
+		afterslash++;
+
+	/* Convert to underscores, stop at first . */
+	for (i = 0; afterslash[i] && afterslash[i] != '.'; i++) {
+		if (afterslash[i] == '-')
+			modname[i] = '_';
+		else
+			modname[i] = afterslash[i];
+	}
+	modname[i] = '\0';
+}
+#endif
+
 extern int rmmod_main(int argc, char **argv)
 {
 	int n, ret = EXIT_SUCCESS;
@@ -81,10 +105,18 @@
 	if (optind == argc)
 		bb_show_usage();
 
-	for (n = optind; n < argc; n++) {
-		if (syscall(__NR_delete_module, argv[n], flags) < 0) {
-			bb_perror_msg("%s", argv[n]);
-			ret = EXIT_FAILURE;
+	{
+#ifdef CONFIG_FEATURE_2_6_MODULES
+		char module_name[strlen(argv[n]) + 1];
+		filename2modname(module_name, argv[n]);
+#else
+#define module_name		argv[n]
+#endif
+		for (n = optind; n < argc; n++) {
+			if (syscall(__NR_delete_module, module_name, flags) < 0) {
+				bb_perror_msg("%s", argv[n]);
+				ret = EXIT_FAILURE;
+			}
 		}
 	}
 
