Fix bug reported by Dan DuVarney, based on a patch by himself. POSIX says: If no dynamic linking errors have occurred since the last invocation of dlerror(), dlerror() shall return NULL. The code was returning an empty string. The way dlerror( ) returns the error string has been changed.