diff --git a/pimd/pim_mroute.c b/pimd/pim_mroute.c
index 48213b0..c76ba52 100644
--- a/pimd/pim_mroute.c
+++ b/pimd/pim_mroute.c
@@ -47,7 +47,7 @@
     int e = errno;
     zlog_warn("%s %s: failure: setsockopt(fd=%d,IPPROTO_IP,%s=%d): errno=%d: %s",
 	      __FILE__, __PRETTY_FUNCTION__,
-	      fd, enable ? "MRT_INIT" : "MRT_DONE", opt, e, strerror(e));
+	      fd, enable ? "MRT_INIT" : "MRT_DONE", opt, e, safe_strerror(e));
     errno = e;
     return -1;
   }
@@ -209,7 +209,7 @@
   rd = read(fd, buf, sizeof(buf));
   if (rd < 0) {
     zlog_warn("%s: failure reading fd=%d: errno=%d: %s",
-	      __PRETTY_FUNCTION__, fd, errno, strerror(errno));
+	      __PRETTY_FUNCTION__, fd, errno, safe_strerror(errno));
     return -2;
   }
 
@@ -275,13 +275,13 @@
 
   if (fd < 0) {
     zlog_warn("Could not create mroute socket: errno=%d: %s",
-	      errno, strerror(errno));
+	      errno, safe_strerror(errno));
     return -2;
   }
 
   if (pim_mroute_set(fd, 1)) {
     zlog_warn("Could not enable mroute on socket fd=%d: errno=%d: %s",
-	      fd, errno, strerror(errno));
+	      fd, errno, safe_strerror(errno));
     close(fd);
     return -3;
   }
@@ -302,13 +302,13 @@
 
   if (pim_mroute_set(qpim_mroute_socket_fd, 0)) {
     zlog_warn("Could not disable mroute on socket fd=%d: errno=%d: %s",
-	      qpim_mroute_socket_fd, errno, strerror(errno));
+	      qpim_mroute_socket_fd, errno, safe_strerror(errno));
     return -2;
   }
 
   if (close(qpim_mroute_socket_fd)) {
     zlog_warn("Failure closing mroute socket: fd=%d errno=%d: %s",
-	      qpim_mroute_socket_fd, errno, strerror(errno));
+	      qpim_mroute_socket_fd, errno, safe_strerror(errno));
     return -3;
   }
 
@@ -359,7 +359,7 @@
     zlog_warn("%s %s: failure: setsockopt(fd=%d,IPPROTO_IP,MRT_ADD_VIF,vif_index=%d,ifaddr=%s): errno=%d: %s",
 	      __FILE__, __PRETTY_FUNCTION__,
 	      qpim_mroute_socket_fd, vif_index, ifaddr_str,
-	      e, strerror(e));
+	      e, safe_strerror(e));
     errno = e;
     return -2;
   }
@@ -387,7 +387,7 @@
     zlog_warn("%s %s: failure: setsockopt(fd=%d,IPPROTO_IP,MRT_DEL_VIF,vif_index=%d): errno=%d: %s",
 	      __FILE__, __PRETTY_FUNCTION__,
 	      qpim_mroute_socket_fd, vif_index,
-	      e, strerror(e));
+	      e, safe_strerror(e));
     errno = e;
     return -2;
   }
@@ -412,7 +412,7 @@
     zlog_warn("%s %s: failure: setsockopt(fd=%d,IPPROTO_IP,MRT_ADD_MFC): errno=%d: %s",
 	      __FILE__, __PRETTY_FUNCTION__,
 	      qpim_mroute_socket_fd,
-	      e, strerror(e));
+	      e, safe_strerror(e));
     errno = e;
     return -2;
   }
@@ -436,7 +436,7 @@
     zlog_warn("%s %s: failure: setsockopt(fd=%d,IPPROTO_IP,MRT_DEL_MFC): errno=%d: %s",
 	      __FILE__, __PRETTY_FUNCTION__,
 	      qpim_mroute_socket_fd,
-	      e, strerror(e));
+	      e, safe_strerror(e));
     errno = e;
     return -2;
   }
