diff --git a/src/dynamic_load.c b/src/dynamic_load.c
index 6c701f4a060251cbe9caa478c7a49afc825b568e..8a793fe63578cbe7827a46eaab3f8955671ceb2e 100644
--- a/src/dynamic_load.c
+++ b/src/dynamic_load.c
@@ -57,8 +57,11 @@ void f_load_module(INT32 args)
   module=dlopen(module_name, RTLD_NOW);
   if(!module)
   {
+    char *err =  dlerror();
+    if (err)
+      err = "";
     error("load_module(\"%s\") failed: %s\n",
-	  sp[-args].u.string->str, dlerror());
+	  sp[-args].u.string->str, err);
   }
 #elif defined(USE_DLD)
   dld_create_reference("pike_module_init");