diff --git a/.travis.yml b/.travis.yml
index c7e8b66b0f2ce57311424ae223f53915937436bd..e781c46e30298cae325b09751bd16299e0e9dfd9 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,7 +4,9 @@ dist: trusty
 
 os:
   - linux
+    env: CFLAGS=-Wno-absolute-value -Werror
   - osx
+    env: CFLAGS=--Werror
 
 env:
 - CFLAGS=-Wno-absolute-value -Wno-unknown-warning-option -Werror
diff --git a/src/md5.c b/src/md5.c
index aeaac2cdee6d5421e0c8c391b0da3246351f6e31..ba89c499b11ba6875e3420b450444ef365ac96ff 100644
--- a/src/md5.c
+++ b/src/md5.c
@@ -36,7 +36,7 @@
  #include <stdlib.h>
 #else
  #ifndef HAVE_MEMCPY
-  #if !((defined (_WIN32) || defined (_WIN32_WCE)) && !defined (__CYGWIN__))
+  #if !((defined (_WIN32) || defined (_WIN32_WCE)) && !defined (__CYGWIN__)) && !defined (__APPLE__)
    #define memcpy(d, s, n) bcopy ((s), (d), (n))
   #endif
  #endif
diff --git a/src/string.c b/src/string.c
index 436757309d96845a8e516e95326132261031fc25..19540547c937bf49b1f8eb755f14f9a87830322d 100644
--- a/src/string.c
+++ b/src/string.c
@@ -15,6 +15,8 @@
 #include <string.h>
 #include "doomdef.h"
 
+#if !defined (__APPLE__)
+
 // Like the OpenBSD version, but it doesn't check for src not being a valid
 // C string.
 size_t strlcat(char *dst, const char *src, size_t siz)
@@ -46,3 +48,5 @@ size_t strlcpy(char *dst, const char *src, size_t siz)
 	dst[0] = '\0';
 	return strlcat(dst, src, siz);
 }
+
+#endif