diff --git a/DynamicLoader.cxx b/DynamicLoader.cxx
index e60a6fd880161fce70203a00870273dc4659af25..6136d4ffeca851e8862dcdbe820155807ea87941 100644
--- a/DynamicLoader.cxx
+++ b/DynamicLoader.cxx
@@ -305,7 +305,7 @@ int DynamicLoader::CloseLibrary(LibHandle lib)
   if (lib)
     {
     // The function dlclose() returns 0 on success, and non-zero on error.
-    return !(int)dlclose(lib);
+    return !dlclose(lib);
     }
   // else
   return 0;
diff --git a/testDynamicLoader.cxx b/testDynamicLoader.cxx
index 5c04dd58d8ac38271d2506ee1230e7455242510a..68839d67848951f115aa564cc5415645c5d869ec 100644
--- a/testDynamicLoader.cxx
+++ b/testDynamicLoader.cxx
@@ -89,7 +89,9 @@ int main(int , char *[])
   kwsys_stl::string libname = GetLibName("testDynload");
   res += TestDynamicLoader(libname.c_str(), "dummy",1,0,1);
   res += TestDynamicLoader(libname.c_str(), "TestDynamicLoaderFunction",1,1,1);
+  res += TestDynamicLoader(libname.c_str(), "_TestDynamicLoaderFunction",1,0,1);
   res += TestDynamicLoader(libname.c_str(), "TestDynamicLoaderData",1,1,1);
+  res += TestDynamicLoader(libname.c_str(), "_TestDynamicLoaderData",1,0,1);
 
   return res;
 }