diff --git a/lib/log.c b/lib/log.c
index ce00bfb..677cf9a 100644
--- a/lib/log.c
+++ b/lib/log.c
@@ -740,9 +740,9 @@
 
 /* Message lookup function. */
 const char *
-lookup (struct message *mes, int key)
+lookup (const struct message *mes, int key)
 {
-  struct message *pnt;
+  const struct message *pnt;
 
   for (pnt = mes; pnt->key != 0; pnt++) 
     if (pnt->key == key) 
diff --git a/lib/log.h b/lib/log.h
index 7432b25..777fd77 100644
--- a/lib/log.h
+++ b/lib/log.h
@@ -144,7 +144,7 @@
 /* For hackey massage lookup and check */
 #define LOOKUP(x, y) mes_lookup(x, x ## _max, y, "(no item found)")
 
-extern const char *lookup (struct message *, int);
+extern const char *lookup (const struct message *, int);
 extern const char *mes_lookup (struct message *meslist, 
                                int max, int index,
                                const char *no_item);
diff --git a/lib/memory.c b/lib/memory.c
index 9ed5e10..28b3d89 100644
--- a/lib/memory.c
+++ b/lib/memory.c
@@ -33,7 +33,7 @@
 static void alloc_dec (int);
 static void log_memstats(int log_priority);
 
-static struct message mstr [] =
+static const struct message mstr [] =
 {
   { MTYPE_THREAD, "thread" },
   { MTYPE_THREAD_MASTER, "thread_master" },
diff --git a/lib/sockopt.c b/lib/sockopt.c
index a2038a5..2f01199 100644
--- a/lib/sockopt.c
+++ b/lib/sockopt.c
@@ -343,6 +343,19 @@
 }
 
 int
+setsockopt_ipv4_tos(int sock, int tos)
+{
+  int ret;
+
+  ret = setsockopt (sock, IPPROTO_IP, IP_TOS, &tos, sizeof (tos));
+  if (ret < 0)
+    zlog_warn ("Can't set IP_TOS option for fd %d to %#x: %s",
+	       sock, tos, safe_strerror(errno));
+  return ret;
+}
+
+
+int
 setsockopt_ifindex (int af, int sock, int val)
 {
   int ret = -1;
diff --git a/lib/sockopt.h b/lib/sockopt.h
index 9538279..cb05c6f 100644
--- a/lib/sockopt.h
+++ b/lib/sockopt.h
@@ -89,6 +89,7 @@
 			             unsigned int ifindex
 					 /* optional: if non-zero, may be used
 					 	instead of if_addr */);
+extern int setsockopt_ipv4_tos(int sock, int tos);
 
 /* Ask for, and get, ifindex, by whatever method is supported. */
 extern int setsockopt_ifindex (int, int, int);
