diff --git a/lib/smux.c b/lib/smux.c
index 349cc2f..1941cf8 100644
--- a/lib/smux.c
+++ b/lib/smux.c
@@ -83,7 +83,7 @@
 static struct thread_master *master;
 
 void *
-oid_copy (void *dest, void *src, size_t size)
+oid_copy (void *dest, const void *src, size_t size)
 {
   return memcpy (dest, src, size * sizeof (oid));
 }
@@ -157,7 +157,7 @@
 }
 
 static void
-smux_oid_dump (const char *prefix, oid *oid, size_t oid_len)
+smux_oid_dump (const char *prefix, const oid *oid, size_t oid_len)
 {
   unsigned int i;
   int first = 1;
@@ -174,7 +174,7 @@
 }
 
 static int
-smux_socket ()
+smux_socket (void)
 {
   int ret;
 #ifdef HAVE_IPV6
@@ -993,9 +993,9 @@
 }
 
 int
-smux_trap (oid *name, size_t namelen,
-	   oid *iname, size_t inamelen,
-	   struct trap_object *trapobj, size_t trapobjlen,
+smux_trap (const oid *name, size_t namelen,
+	   const oid *iname, size_t inamelen,
+	   const struct trap_object *trapobj, size_t trapobjlen,
 	   unsigned int tick, u_char sptrap)
 {
   unsigned int i;
@@ -1227,7 +1227,7 @@
 
 /* Clear all SMUX related resources. */
 static void
-smux_stop ()
+smux_stop (void)
 {
   if (smux_read_thread)
     {
@@ -1388,7 +1388,7 @@
 }
 
 static int
-smux_peer_default ()
+smux_peer_default (void)
 {
   if (smux_oid)
     {
diff --git a/lib/smux.h b/lib/smux.h
index bab3587..f5754ed 100644
--- a/lib/smux.h
+++ b/lib/smux.h
@@ -150,11 +150,12 @@
                               size_t, int, oid [], size_t);
 extern int smux_header_generic (struct variable *, oid [], size_t *, 
                                 int, size_t *, WriteMethod **);
-extern int smux_trap (oid *, size_t, oid *, size_t, struct trap_object *, 
+extern int smux_trap (const oid *, size_t, const oid *, size_t, 
+		      const struct trap_object *, 
                       size_t, unsigned int, u_char);
 extern int oid_compare (oid *, int, oid *, int);
 extern void oid2in_addr (oid [], int, struct in_addr *);
-extern void *oid_copy (void *, void *, size_t);
+extern void *oid_copy (void *, const void *, size_t);
 extern void oid_copy_addr (oid [], struct in_addr *, int);
 
 #endif /* _ZEBRA_SNMP_H */
