diff --git a/main/logger.c b/main/logger.c
index 13f6de89026f3c7d13e05ee063fbd4a78826f890..42a1c700049cd9946001f1c6c74519d344c4ab47 100644
--- a/main/logger.c
+++ b/main/logger.c
@@ -1514,7 +1514,8 @@ static void logger_print_normal(struct logmsg *logmsg)
 						continue;
 					}
 
-					syslog_level = LOG_MAKEPRI(chan->facility, syslog_level);
+					/* Don't use LOG_MAKEPRI because it's broken in glibc<2.17 */
+					syslog_level = chan->facility | syslog_level; /* LOG_MAKEPRI(chan->facility, syslog_level); */
 					if (!chan->formatter.format_log(chan, logmsg, buf, BUFSIZ)) {
 						syslog(syslog_level, "%s", buf);
 					}