--- ./lib/replace/replace.c_orig	2023-08-17 08:19:12.787967553 +0000
+++ ./lib/replace/replace.c	2023-09-13 04:05:24.718781687 +0000
@@ -32,6 +32,7 @@
 #include "system/syslog.h"
 #include "system/locale.h"
 #include "system/wait.h"
+#include <procinfo.h>
 
 #ifdef HAVE_SYS_SYSCALL_H
 #include <sys/syscall.h>
@@ -993,6 +994,19 @@
 {
 #ifdef HAVE_PROGRAM_INVOCATION_SHORT_NAME
 	return program_invocation_short_name;
+#elif _AIX
+       if (rep_progname[0] != '\0') {
+               return rep_progname;
+       }
+       char *p = NULL;
+       struct procentry64 procs;
+       pid_t pid = getpid();
+       p = (0 < getprocs64 (&procs, sizeof procs, NULL, 0, &pid, 1)
+               ? strdup (procs.pi_comm) : NULL);
+
+       (void)snprintf(rep_progname, sizeof(rep_progname), "%s", p);
+
+       return rep_progname;
 #else /* HAVE_PROGRAM_INVOCATION_SHORT_NAME */
 	FILE *fp = NULL;
 	char cmdline[4096] = {0};
