diff --git a/src/backend/port/dynloader/freebsd.c b/src/backend/port/dynloader/freebsd.c
index 48d0d3cc413b5956eb06d7999cef04b0f671f67d..51ad3d99a66623f55fbc2dfb9df21bfd3b04777a 100644
--- a/src/backend/port/dynloader/freebsd.c
+++ b/src/backend/port/dynloader/freebsd.c
@@ -68,7 +68,7 @@ BSD44_derived_dlopen(const char *file, int num)
 	void	   *vp;
 
 	if ((vp = dlopen((char *) file, num)) == (void *) NULL)
-		sprintf(error_message, "dlopen (%s) failed", file);
+		sprintf(error_message, "dlopen '%s' failed. (%s)", file, dlerror() );
 	return vp;
 #endif
 }