diff --git a/include/libnetfilter_log/libipulog.h b/include/libnetfilter_log/libipulog.h
index ee7890a2d93c..deb0dcc72577 100644
--- a/include/libnetfilter_log/libipulog.h
+++ b/include/libnetfilter_log/libipulog.h
@@ -16,6 +16,10 @@
 #define ULOG_PREFIX_LEN	32
 #define ULOG_IFNAMSIZ	16
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Format of the ULOG packets passed through netlink */
 typedef struct ulog_packet_msg {
 	unsigned long mark;
@@ -67,5 +71,9 @@ enum
 };
 #define IPULOG_MAXERR IPULOG_ERR_INVNL
 
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
 
 #endif /* _LIBIPULOG_H */
diff --git a/include/libnetfilter_log/libnetfilter_log.h b/include/libnetfilter_log/libnetfilter_log.h
index 46767eb003c9..6192fa3a5cf1 100644
--- a/include/libnetfilter_log/libnetfilter_log.h
+++ b/include/libnetfilter_log/libnetfilter_log.h
@@ -14,6 +14,10 @@
 #include <linux/netlink.h>
 #include <libnetfilter_log/linux_nfnetlink_log.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 struct nflog_handle;
 struct nflog_g_handle;
 struct nflog_data;
@@ -97,4 +101,8 @@ int nflog_nlmsg_snprintf(char *buf, size_t bufsiz, const struct nlmsghdr *nlh,
 			 struct nlattr **attr, enum nflog_output_type type,
 			 uint32_t flags);
 
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
 #endif	/* __LIBNETFILTER_LOG_H */
