diff --git a/cbits/execvpe.c b/cbits/execvpe.c
index 708b8b2c50c887982463036247516f5ca72c6023..9af3acc35ede73155c07fbdc76ec135695c6600c 100644
--- a/cbits/execvpe.c
+++ b/cbits/execvpe.c
@@ -22,7 +22,6 @@
 #include <string.h>
 #include <errno.h>
 
-#define HSUNIX_EXECVPE_H_NO_COMPAT
 #include "execvpe.h"
 
 #if !defined(execvpe) && !HAVE_DECL_EXECVPE
diff --git a/changelog.md b/changelog.md
index 617607f66cf5bfd9562c6cf3ed3ccbc0ab673119..6624129e30af7ae6fddd59a2dd0086e9298b33c5 100644
--- a/changelog.md
+++ b/changelog.md
@@ -15,6 +15,8 @@
     which now must be passed as part of `OpenFileFlags`
     (e.g. `defaultFileFlags { creat = Just mode }`)  (#58)
 
+  * Remove deprecated `execvpe(3)` legacy-emulation CPP macro
+
 ## 2.7.2.2  *May 2017*
 
   * Bundled with GHC 8.2.1
diff --git a/include/execvpe.h b/include/execvpe.h
index 8db9495a88cf43655da75821b604f37dbd6c27aa..bfc7eb97c0f941211a3ccd2e5069691c36642b98 100644
--- a/include/execvpe.h
+++ b/include/execvpe.h
@@ -10,16 +10,4 @@
 extern int
 __hsunix_execvpe(const char *name, char *const argv[], char *const envp[]);
 
-// this hack is needed for `process`; to be removed in unix-2.8
-#ifndef HSUNIX_EXECVPE_H_NO_COMPAT
-#include "HsUnixConfig.h"
-#if HAVE_EXECVPE
-# include <unistd.h>
-extern int
-execvpe(const char *name, char *const argv[], char *const envp[]);
-#else
-# define execvpe(name,argv,envp) __hsunix_execvpe(name,argv,envp)
-#endif
-#endif
-
 #endif