diff --git a/src/compat.h b/src/compat.h
index a867636..1ef1bf0 100644
--- a/src/compat.h
+++ b/src/compat.h
@@ -34,6 +34,7 @@
 #include <pthread.h>
 #include <stdlib.h>
 #include <string.h>
+#include <sys/types.h>
 
 /*
  * The following macro is used to remove const cast-away warnings
diff --git a/src/syslog.h b/src/syslog.h
index 4fb7627..120a18f 100644
--- a/src/syslog.h
+++ b/src/syslog.h
@@ -221,7 +221,9 @@ struct syslog_data {
     .log_mask = 0xff, \
 }
 
-__BEGIN_DECLS
+#ifdef __cplusplus
+extern "C" {
+#endif
 void	openlog    (const char *, int, int);
 void	closelog   (void);
 
@@ -245,7 +247,9 @@ void	syslogp_r  (int, struct syslog_data *, const char *, const char *,
 		    const char *, ...);
 void	vsyslogp_r (int, struct syslog_data *, const char *, const char *,
 		    const char *, va_list);
-__END_DECLS
+#ifdef __cplusplus
+}
+#endif
 
 #else /* !__KERNEL__ */