diff --git a/src/dynamic_load.c b/src/dynamic_load.c
index c07ff803cac671d14af3a1b1153b673511370471..52a7bfc6ee5679fe0a32e0aed212a7c90f52ab72 100644
--- a/src/dynamic_load.c
+++ b/src/dynamic_load.c
@@ -59,11 +59,11 @@ void f_load_module(INT32 args)
       {
 	strcpy(buf1, foo);
 	foo=buf1;
-      
-	while((*foo >= 'a' && *foo <= 'z' ) || (*foo >= 'A' && *foo <= 'Z' ))
-	  foo++;
 
-	*foo=0;
+	/* Strip extension, if any */
+	foo = STRCHR(foo, '.');
+	if (foo)
+	  *foo=0;
       
 	strcpy(buf2,"init_");
 	strcat(buf2,buf1);