diff --git a/src/ldso/nt32/dynlink.c b/src/ldso/nt32/dynlink.c
index 28f3334..cd317d5 100644
--- a/src/ldso/nt32/dynlink.c
+++ b/src/ldso/nt32/dynlink.c
@@ -111,7 +111,7 @@ int __dladdr(const void * addr, Dl_info * info)
 
 int __dlinfo(void * dso, int req, void * res)
 {
-	return __ldso_vtbl->dlinfo(dso,req,res);
+	return (__ldso_vtbl->dlinfo(dso,req,res)) ? -1 : 0;
 }
 
 void *__dlsym(void * restrict p, const char * restrict s)
diff --git a/src/ldso/nt64/dynlink.c b/src/ldso/nt64/dynlink.c
index 28f3334..cd317d5 100644
--- a/src/ldso/nt64/dynlink.c
+++ b/src/ldso/nt64/dynlink.c
@@ -111,7 +111,7 @@ int __dladdr(const void * addr, Dl_info * info)
 
 int __dlinfo(void * dso, int req, void * res)
 {
-	return __ldso_vtbl->dlinfo(dso,req,res);
+	return (__ldso_vtbl->dlinfo(dso,req,res)) ? -1 : 0;
 }
 
 void *__dlsym(void * restrict p, const char * restrict s)