--- ./libclamav/others.c_orig	2023-04-10 04:51:21.804779672 +0000
+++ ./libclamav/others.c	2023-04-10 04:52:43.209489204 +0000
@@ -195,12 +195,18 @@
 
     cli_dbgmsg("searching for %s, user-searchpath: %s\n", featurename, searchpath);
     for (i = 0; i < sizeof(suffixes) / sizeof(suffixes[0]); i++) {
-        snprintf(modulename, sizeof(modulename), "%s%s", name, suffixes[i]);
-
+        #if defined(_AIX)
+            if(suffixes[i]==".a")
+                snprintf(modulename, sizeof(modulename), "%s/%s%s(%s%s.%d)",searchpath,name,suffixes[i],name,LT_MODULE_EXT,LIBCLAMAV_MAJORVER);
+            else
+                snprintf(modulename, sizeof(modulename), "%s%s", name, suffixes[i]);
+        #else
+            snprintf(modulename, sizeof(modulename), "%s%s", name, suffixes[i]);
+        #endif
 #ifdef _WIN32
         rhandle = LoadLibraryA(modulename);
 #else  // !_WIN32
-        rhandle         = dlopen(modulename, RTLD_NOW);
+        rhandle         = dlopen(modulename, RTLD_MEMBER| RTLD_NOW);
 #endif // !_WIN32
         if (rhandle) {
             break;
