--- ./src/nrpe.c.orig	2020-12-15 02:10:35 +0000
+++ ./src/nrpe.c	2020-12-15 02:11:21 +0000
@@ -1364,6 +1364,10 @@
 	}
 }
 
+#if (defined(_AIX51) || defined(_AIX52) || defined(_AIX53)) && !(defined(_AIX61))
+#define ss_family __ss_family
+#endif
+
 /* wait for incoming connection requests */
 void wait_for_connections(void)
 {
--- ./src/utils.c.orig	2020-12-15 02:11:47 +0000
+++ ./src/utils.c	2020-12-15 02:13:12 +0000
@@ -257,6 +257,44 @@
 	*listen_addrs = aitop;
 }
 
+/***************************************************************************
+                                 unsetenv()
+ ****************************************************************************/
+
+#if defined(_AIX) && !defined(_AIX52)
+int
+unsetenv( const char *name )
+{
+  size_t len;
+  char **ep;
+
+  if ((name == NULL) || (*name == '\0') || (strchr( name, '=' ) != NULL))
+  {
+    errno = EINVAL;
+    return( -1 );
+  }
+
+  len = strlen( name );
+
+  ep = environ;
+  while (*ep != NULL)
+    if (! strncmp( *ep, name, len ) && (*ep)[len] == '=')
+    {
+/* Found it.  Remove this pointer by moving later ones back.  */
+      char **dp = ep;
+
+      do
+        dp[0] = dp[1];
+      while (*dp++);
+/* Continue the loop in case NAME appears again.  */
+    }
+  else
+    ++ep;
+
+  return( 0 );
+}
+#endif
+
 int clean_environ(const char *keep_env_vars, const char *nrpe_user)
 {
 #if defined(HAVE_PATHS_H) && defined(_PATH_STDPATH)
