diff --git a/SConstruct b/SConstruct
index 3120df44a885b706cc57534e9a0f548bcd1a0562..149951b026e8d86f9e298da7f8d59084763d8b0a 100644
--- a/SConstruct
+++ b/SConstruct
@@ -119,7 +119,7 @@ if env['CC'] == 'cl':
     )
 else:
     # -Wno-clobbered only really works with gcc >= 4.2.x, but ... scons
-    env.MergeFlags('-std=c99 -D_POSIX_C_SOURCE=200809L -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable')
+    env.MergeFlags('-std=c99 -Wall -Wextra -Werror -Wno-unused-parameter -Wno-attributes -Wno-unused-variable')
 
 # Linker options
 if env['PLATFORM'] == 'darwin':
diff --git a/src/registry.c b/src/registry.c
index 5486fd7bdb8022c65a296205b0dfd562a20a0572..15cf41a6c6eeb1ec8b9849b06a1e1ead2a5d204a 100644
--- a/src/registry.c
+++ b/src/registry.c
@@ -15,7 +15,6 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 
-#include <search.h>
 #include <stdlib.h>
 #include "hammer.h"
 #include "internal.h"
diff --git a/src/tsearch.h b/src/tsearch.h
index 7b297db7c7ea425f350f0d2c3350d55a630fb97b..7ba71d97502ca34908284560d0c156d2d29d9c37 100644
--- a/src/tsearch.h
+++ b/src/tsearch.h
@@ -20,6 +20,7 @@ void *tfind(const void *vkey, void * const *vrootp,
             int (*compar)(const void *, const void *));
 
 #else
+#define _POSIX_C_SOURCE 200809L
 #include <search.h>
 #endif