diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index 34bf640..75e3b4d 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -10,6 +10,13 @@
 	  (ospf_recv_packet) ip_len is needed for old OpenBSD fixup.
 	  (ospf_read) sockopt_iphdrincl_swab_systoh ip header as soon as
 	  we have it.
+	* (global) Const char update and signed/unsigned fixes.
+	* (various headers) size defines should be unsigned.
+	* ospf_interface.h: remove duplicated defines, include the
+	  authoritative header - though, these defines should probably
+          be moved to a dedicated header, or ospfd.h.
+	* ospf_lsa.h: (struct lsa) ls_seqnum should be unsigned.
+	* ospf_packet.c: (ospf_write) cast result of shift to unsigned.
 	  
 2004-10-08 Hasso Tepper <hasso at quagga.net>
 	
diff --git a/ospfd/ospf_abr.c b/ospfd/ospf_abr.c
index e23ace2..51fb2d6 100644
--- a/ospfd/ospf_abr.c
+++ b/ospfd/ospf_abr.c
@@ -565,7 +565,7 @@
   if (IS_DEBUG_OSPF_EVENT)
     zlog_info ("ospf_abr_update_aggregate(): Start");
 
-  if (range->cost_config != -1)
+  if (range->cost_config != OSPF_AREA_RANGE_COST_UNSPEC)
     {
       if (IS_DEBUG_OSPF_EVENT)
         zlog_info ("ospf_abr_update_aggregate(): use configured cost %d",
diff --git a/ospfd/ospf_abr.h b/ospfd/ospf_abr.h
index 3b385c3..11c0d9b 100644
--- a/ospfd/ospf_abr.h
+++ b/ospfd/ospf_abr.h
@@ -52,7 +52,7 @@
 
   /* Configured range cost. */
   u_int32_t cost_config;
-#define OSPF_AREA_RANGE_COST_UNSPEC	-1
+#define OSPF_AREA_RANGE_COST_UNSPEC	-1U
 };
 
 /* Prototypes. */
@@ -75,10 +75,10 @@
 struct ospf_area_range *ospf_area_range_match_any (struct ospf *,
 						   struct prefix_ipv4 *);
 int ospf_area_range_active (struct ospf_area_range *);
-int ospf_act_bb_connection ();
+int ospf_act_bb_connection (struct ospf *);
 
-void ospf_check_abr_status ();
-void ospf_abr_task ();
-void ospf_schedule_abr_task ();
+void ospf_check_abr_status (struct ospf *);
+void ospf_abr_task (struct ospf *);
+void ospf_schedule_abr_task (struct ospf *);
 
 #endif /* _ZEBRA_OSPF_ABR_H */
diff --git a/ospfd/ospf_interface.h b/ospfd/ospf_interface.h
index 0f3cecd..ed6abed 100644
--- a/ospfd/ospf_interface.h
+++ b/ospfd/ospf_interface.h
@@ -23,8 +23,7 @@
 #ifndef _ZEBRA_OSPF_INTERFACE_H
 #define _ZEBRA_OSPF_INTERFACE_H
 
-#define OSPF_AUTH_SIMPLE_SIZE           8
-#define OSPF_AUTH_MD5_SIZE             16
+#include "ospfd/ospf_packet.h"
 
 #define IF_OSPF_IF_INFO(I) ((struct ospf_if_info *)((I)->info))
 #define IF_DEF_PARAMS(I) (IF_OSPF_IF_INFO (I)->def_params)
diff --git a/ospfd/ospf_lsa.h b/ospfd/ospf_lsa.h
index 6d60b57..6d10e64 100644
--- a/ospfd/ospf_lsa.h
+++ b/ospfd/ospf_lsa.h
@@ -45,8 +45,8 @@
 #define OSPF_OPAQUE_AREA_LSA	     10
 #define OSPF_OPAQUE_AS_LSA	     11
 
-#define OSPF_LSA_HEADER_SIZE	20
-#define OSPF_MAX_LSA_SIZE	1500
+#define OSPF_LSA_HEADER_SIZE	20U
+#define OSPF_MAX_LSA_SIZE	1500U
 
 /* AS-external-LSA refresh method. */
 #define LSA_REFRESH_IF_CHANGED	0
@@ -60,7 +60,7 @@
   u_char type;
   struct in_addr id;
   struct in_addr adv_router;
-  int ls_seqnum;
+  u_int32_t ls_seqnum;
   u_int16_t checksum;
   u_int16_t length;
 };
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index d62a06e..dc1ee0b 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -241,7 +241,7 @@
   return new;
 }
 
-int
+unsigned int
 ospf_packet_max (struct ospf_interface *oi)
 {
   int max;
@@ -261,7 +261,7 @@
 ospf_check_md5_digest (struct ospf_interface *oi, struct stream *s,
                        u_int16_t length)
 {
-  void *ibuf;
+  unsigned char *ibuf;
   struct md5_ctx ctx;
   unsigned char digest[OSPF_AUTH_MD5_SIZE];
   unsigned char *pdigest;
@@ -486,7 +486,8 @@
 void
 ospf_write_frags (int fd, struct ospf_packet *op, struct ip *iph, 
                   struct msghdr *msg, struct iovec **iov, 
-                  int maxdatasize, int mtu, int flags)
+                  unsigned int maxdatasize, 
+                  unsigned int mtu, int flags)
 {
 #define OSPF_WRITE_FRAG_SHIFT 3
   u_int16_t offset;
@@ -617,7 +618,8 @@
 
   iph.ip_hl = sizeof (struct ip) >> OSPF_WRITE_IPHL_SHIFT;
   /* it'd be very strange for header to not be 4byte-word aligned but.. */
-  if ( sizeof (struct ip) > (iph.ip_hl << OSPF_WRITE_IPHL_SHIFT) )
+  if ( sizeof (struct ip) 
+        > (unsigned int)(iph.ip_hl << OSPF_WRITE_IPHL_SHIFT) )
     iph.ip_hl++; /* we presume sizeof struct ip cant overflow ip_hl.. */
   
   iph.ip_v = IPVERSION;
@@ -1326,7 +1328,7 @@
   struct in_addr adv_router;
   struct ospf_lsa *find;
   struct list *ls_upd;
-  int length;
+  unsigned int length;
 
   /* Increment statistics. */
   oi->ls_req_in++;
diff --git a/ospfd/ospf_packet.h b/ospfd/ospf_packet.h
index 48f4e13..8de0bfb 100644
--- a/ospfd/ospf_packet.h
+++ b/ospfd/ospf_packet.h
@@ -23,16 +23,16 @@
 #ifndef _ZEBRA_OSPF_PACKET_H
 #define _ZEBRA_OSPF_PACKET_H
 
-#define OSPF_HEADER_SIZE         24
-#define OSPF_AUTH_SIMPLE_SIZE     8
-#define OSPF_AUTH_MD5_SIZE       16
+#define OSPF_HEADER_SIZE         24U
+#define OSPF_AUTH_SIMPLE_SIZE     8U
+#define OSPF_AUTH_MD5_SIZE       16U
 
-#define OSPF_MAX_PACKET_SIZE  65535   /* includes IP Header size. */
-#define OSPF_HELLO_MIN_SIZE      20   /* not including neighbors */
-#define OSPF_DB_DESC_MIN_SIZE     8
-#define OSPF_LS_REQ_MIN_SIZE      0
-#define OSPF_LS_UPD_MIN_SIZE      4
-#define OSPF_LS_ACK_MIN_SIZE      0
+#define OSPF_MAX_PACKET_SIZE  65535U   /* includes IP Header size. */
+#define OSPF_HELLO_MIN_SIZE      20U   /* not including neighbors */
+#define OSPF_DB_DESC_MIN_SIZE     8U
+#define OSPF_LS_REQ_MIN_SIZE      0U
+#define OSPF_LS_UPD_MIN_SIZE      4U
+#define OSPF_LS_ACK_MIN_SIZE      0U
 
 #define OSPF_MSG_HELLO         1  /* OSPF Hello Message. */
 #define OSPF_MSG_DB_DESC       2  /* OSPF Database Descriptoin Message. */
diff --git a/ospfd/ospf_routemap.c b/ospfd/ospf_routemap.c
index 52fa901..074a2de 100644
--- a/ospfd/ospf_routemap.c
+++ b/ospfd/ospf_routemap.c
@@ -41,7 +41,7 @@
 
 /* Hook function for updating route_map assignment. */
 void
-ospf_route_map_update (char *name)
+ospf_route_map_update (const char *name)
 {
   struct ospf *ospf;
   int type;
@@ -74,7 +74,7 @@
 }
 
 void
-ospf_route_map_event (route_map_event_t event, char *name)
+ospf_route_map_event (route_map_event_t event, const char *name)
 {
   struct ospf *ospf;
   int type;
@@ -98,7 +98,7 @@
 /* Delete rip route map rule. */
 int
 ospf_route_match_delete (struct vty *vty, struct route_map_index *index,
-			 const char *command, char *arg)
+			 const char *command, const char *arg)
 {
   int ret;
 
@@ -123,7 +123,7 @@
 
 int
 ospf_route_match_add (struct vty *vty, struct route_map_index *index,
-		      const char *command, char *arg)
+		      const char *command, const char *arg)
 {                                                                              
   int ret;
 
@@ -148,7 +148,7 @@
 
 int
 ospf_route_set_add (struct vty *vty, struct route_map_index *index,
-		    const char *command, char *arg)
+		    const char *command, const char *arg)
 {
   int ret;
 
@@ -174,7 +174,7 @@
 /* Delete rip route map rule. */
 int
 ospf_route_set_delete (struct vty *vty, struct route_map_index *index,
-		       const char *command, char *arg)
+		       const char *command, const char *arg)
 {                                              
   int ret;
 
@@ -226,7 +226,7 @@
 /* Route map `ip next-hop' match statement. `arg' should be
    access-list name. */
 void *
-route_match_ip_nexthop_compile (char *arg)
+route_match_ip_nexthop_compile (const char *arg)
 {
   return XSTRDUP (MTYPE_ROUTE_MAP_COMPILED, arg);
 }
@@ -274,7 +274,7 @@
 }
 
 void *
-route_match_ip_next_hop_prefix_list_compile (char *arg)
+route_match_ip_next_hop_prefix_list_compile (const char *arg)
 {
   return XSTRDUP (MTYPE_ROUTE_MAP_COMPILED, arg);
 }
@@ -318,7 +318,7 @@
 /* Route map `ip address' match statement.  `arg' should be
    access-list name. */
 void *
-route_match_ip_address_compile (char *arg)
+route_match_ip_address_compile (const char *arg)
 {
   return XSTRDUP (MTYPE_ROUTE_MAP_COMPILED, arg);
 }
@@ -359,7 +359,7 @@
 }
 
 void *
-route_match_ip_address_prefix_list_compile (char *arg)
+route_match_ip_address_prefix_list_compile (const char *arg)
 {
   return XSTRDUP (MTYPE_ROUTE_MAP_COMPILED, arg);
 }
@@ -404,7 +404,7 @@
 /* Route map `interface' match statement.  `arg' should be
    interface name. */
 void *
-route_match_interface_compile (char *arg)
+route_match_interface_compile (const char *arg)
 {
   return XSTRDUP (MTYPE_ROUTE_MAP_COMPILED, arg);
 }
@@ -448,7 +448,7 @@
 
 /* set metric compilation. */
 void *
-route_set_metric_compile (char *arg)
+route_set_metric_compile (const char *arg)
 {
   u_int32_t *metric;
 
@@ -501,7 +501,7 @@
 
 /* set metric-type compilation. */
 void *
-route_set_metric_type_compile (char *arg)
+route_set_metric_type_compile (const char *arg)
 {
   u_int32_t *metric_type;
 
diff --git a/ospfd/ospf_snmp.c b/ospfd/ospf_snmp.c
index 3be3ce4..ccb6498 100644
--- a/ospfd/ospf_snmp.c
+++ b/ospfd/ospf_snmp.c
@@ -919,7 +919,7 @@
   struct ospf *ospf;
   struct ospf_area *area;
   struct ospf_lsa *lsa;
-  int len;
+  unsigned int len;
   int type_next;
   int ls_id_next;
   int router_id_next;
@@ -1130,7 +1130,7 @@
 {
   oid *offset;
   int offsetlen;
-  int len;
+  unsigned int len;
   struct ospf *ospf;
   struct ospf_area *area;
   struct ospf_area_range *range;
@@ -1566,7 +1566,7 @@
 ospfIfLookup (struct variable *v, oid *name, size_t *length,
 	      struct in_addr *ifaddr, unsigned int *ifindex, int exact)
 {
-  int len;
+  unsigned int len;
   int ifaddr_next = 0;
   int ifindex_next = 0;
   struct interface *ifp;
@@ -1731,7 +1731,7 @@
 ospfIfMetricLookup (struct variable *v, oid *name, size_t *length,
 		    struct in_addr *ifaddr, unsigned int *ifindex, int exact)
 {
-  int len;
+  unsigned int len;
   int ifaddr_next = 0;
   int ifindex_next = 0;
   struct interface *ifp;
@@ -1943,7 +1943,7 @@
 		  struct in_addr *area_id, struct in_addr *neighbor, int exact)
 {
   int first;
-  int len;
+  unsigned int len;
   struct ospf_vl_data *vl_data;
 
   if (exact)
@@ -2128,7 +2128,7 @@
 ospfNbrLookup (struct variable *v, oid *name, size_t *length,
 	       struct in_addr *nbr_addr, unsigned int *ifindex, int exact)
 {
-  int len;
+  unsigned int len;
   int first;
   struct ospf_neighbor *nbr;
   struct ospf *ospf;
@@ -2300,7 +2300,7 @@
   oid *offset;
   int offsetlen;
   u_char lsa_type;
-  int len;
+  unsigned int len;
   struct ospf_lsa *lsa;
   struct ospf *ospf;
 
@@ -2477,8 +2477,6 @@
 void
 ospf_snmp_init ()
 {
-  struct ospf *ospf;
-
   ospf_snmp_iflist = list_new ();
   ospf_snmp_vl_table = route_table_init ();
   smux_init (om->master, ospfd_oid, sizeof (ospfd_oid) / sizeof (oid));
diff --git a/ospfd/ospf_te.c b/ospfd/ospf_te.c
index a498003..f62f35c 100644
--- a/ospfd/ospf_te.c
+++ b/ospfd/ospf_te.c
@@ -267,7 +267,7 @@
 {
   struct listnode *node;
   struct mpls_te_link *lp;
-  int key = GET_OPAQUE_ID (ntohl (lsa->data->id.s_addr));
+  unsigned int key = GET_OPAQUE_ID (ntohl (lsa->data->id.s_addr));
 
   LIST_LOOP (OspfMplsTE.iflist, lp, node)
     if (lp->instance == key)
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index b74a304..0ecb6fb 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -63,7 +63,7 @@
 
 /* Utility functions. */
 int
-ospf_str2area_id (char *str, struct in_addr *area_id, int *format)
+ospf_str2area_id (const char *str, struct in_addr *area_id, int *format)
 {
   char *endptr = NULL;
   unsigned long ret;
@@ -92,7 +92,7 @@
 
 
 int
-str2distribute_source (char *str, int *source)
+str2distribute_source (const char *str, int *source)
 {
   /* Sanity check. */
   if (str == NULL)
@@ -115,7 +115,7 @@
 }
 
 int
-str2metric (char *str, int *metric)
+str2metric (const char *str, int *metric)
 {
   /* Sanity check. */
   if (str == NULL)
@@ -132,7 +132,7 @@
 }
 
 int
-str2metric_type (char *str, int *metric_type)
+str2metric_type (const char *str, int *metric_type)
 {
   /* Sanity check. */
   if (str == NULL)
@@ -1471,7 +1471,8 @@
 }
 
 int
-ospf_area_nssa_cmd_handler (struct vty *vty, int argc, char **argv, int nosum)
+ospf_area_nssa_cmd_handler (struct vty *vty, int argc, const char *argv[], 
+                            int nosum)
 {
   struct ospf *ospf = vty->index;
   struct in_addr area_id;
@@ -6965,7 +6966,7 @@
 	    vty_out (vty, " area %s range %s/%d", buf,
 		     inet_ntoa (rn1->p.u.prefix4), rn1->p.prefixlen);
 
-	    if (range->cost_config != -1)
+	    if (range->cost_config != OSPF_AREA_RANGE_COST_UNSPEC)
 	      vty_out (vty, " cost %d", range->cost_config);
 
 	    if (!CHECK_FLAG (range->flags, OSPF_AREA_RANGE_ADVERTISE))
diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c
index 3172ebc..331c27c 100644
--- a/ospfd/ospf_zebra.c
+++ b/ospfd/ospf_zebra.c
@@ -756,7 +756,7 @@
 
 /* OSPF route-map set for redistribution */
 void
-ospf_routemap_set (struct ospf *ospf, int type, char *name)
+ospf_routemap_set (struct ospf *ospf, int type, const char *name)
 {
   if (ROUTEMAP_NAME (ospf, type))
     free (ROUTEMAP_NAME (ospf, type));
@@ -883,7 +883,7 @@
 
 
 int
-ospf_distribute_list_out_set (struct ospf *ospf, int type, char *name)
+ospf_distribute_list_out_set (struct ospf *ospf, int type, const char *name)
 {
   /* Lookup access-list for distribute-list. */
   DISTRIBUTE_LIST (ospf, type) = access_list_lookup (AFI_IP, name);
@@ -903,7 +903,7 @@
 }
 
 int
-ospf_distribute_list_out_unset (struct ospf *ospf, int type, char *name)
+ospf_distribute_list_out_unset (struct ospf *ospf, int type, const char *name)
 {
   /* Schedule update timer. */
   if (DISTRIBUTE_LIST (ospf, type))
@@ -1120,8 +1120,10 @@
 }
 
 int
-ospf_distance_set (struct vty *vty, struct ospf *ospf, char *distance_str,
-                   char *ip_str, char *access_list_str)
+ospf_distance_set (struct vty *vty, struct ospf *ospf, 
+                   const char *distance_str,
+                   const char *ip_str, 
+                   const char *access_list_str)
 {
   int ret;
   struct prefix_ipv4 p;
@@ -1167,8 +1169,10 @@
 }
 
 int
-ospf_distance_unset (struct vty *vty, struct ospf *ospf, char *distance_str,
-                     char *ip_str, char *access_list_str)
+ospf_distance_unset (struct vty *vty, struct ospf *ospf, 
+                     const char *distance_str,
+                     const char *ip_str, char 
+                     const *access_list_str)
 {
   int ret;
   struct prefix_ipv4 p;
diff --git a/ospfd/ospf_zebra.h b/ospfd/ospf_zebra.h
index 5dbf573..e8ad979 100644
--- a/ospfd/ospf_zebra.h
+++ b/ospfd/ospf_zebra.h
@@ -50,28 +50,26 @@
 
 int ospf_default_originate_timer (struct thread *);
 
-int ospf_redistribute_check (struct external_info *, int *);
-int ospf_distribute_check_connected (struct external_info *);
-void ospf_distribute_list_update (int);
+int ospf_redistribute_check (struct ospf *, struct external_info *, int *);
+int ospf_distribute_check_connected (struct ospf *, struct external_info *);
+void ospf_distribute_list_update (struct ospf *, int);
 
 int ospf_is_type_redistributed (int);
-int ospf_redistribute_unset (int);
-
-void ospf_distance_reset ();
+void ospf_distance_reset (struct ospf *);
 u_char ospf_distance_apply (struct prefix_ipv4 *, struct ospf_route *);
 
 struct vty;
 
-int ospf_redistribute_set (int, int, int);
-int ospf_redistribute_unset (int);
-int ospf_redistribute_default_set (int, int, int);
-int ospf_redistribute_default_unset ();
-int ospf_distribute_list_out_set (int, char *);
-int ospf_distribute_list_out_unset (int, char *);
-void ospf_routemap_set (int, char *);
-void ospf_routemap_unset (int);
-int ospf_distance_set (struct vty *, char *, char *, char *);
-int ospf_distance_unset (struct vty *, char *, char *, char *);
+int ospf_redistribute_set (struct ospf *, int, int, int);
+int ospf_redistribute_unset (struct ospf *, int);
+int ospf_redistribute_default_set (struct ospf *, int, int, int);
+int ospf_redistribute_default_unset (struct ospf *);
+int ospf_distribute_list_out_set (struct ospf *, int, const char *);
+int ospf_distribute_list_out_unset (struct ospf *, int, const char *);
+void ospf_routemap_set (struct ospf *, int, const char *);
+void ospf_routemap_unset (struct ospf *, int);
+int ospf_distance_set (struct vty *, struct ospf *, const char *, const char *, const char *);
+int ospf_distance_unset (struct vty *, struct ospf *, const char *, const char *, const char *);
 void ospf_zebra_init ();
 
 #endif /* _ZEBRA_OSPF_ZEBRA_H */
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index 6c6dd8d..0a988e0 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -1172,7 +1172,7 @@
 
 int
 ospf_area_export_list_set (struct ospf *ospf,
-			   struct ospf_area *area, char *list_name)
+			   struct ospf_area *area, const char *list_name)
 {
   struct access_list *list;
   list = access_list_lookup (AFI_IP, list_name);
@@ -1207,8 +1207,8 @@
 }
 
 int
-ospf_area_import_list_set (struct ospf *ospf,
-			   struct ospf_area *area, char *name)
+ospf_area_import_list_set (struct ospf *ospf, struct ospf_area *area, 
+                           const char *name)
 {
   struct access_list *list;
   list = access_list_lookup (AFI_IP, name);
@@ -1565,7 +1565,7 @@
 
 int
 ospf_nbr_nbma_poll_interval_set (struct ospf *ospf, struct in_addr nbr_addr,
-				 int interval)
+				 unsigned int interval)
 {
   struct ospf_nbr_nbma *nbr_nbma;
 
diff --git a/ospfd/ospfd.h b/ospfd/ospfd.h
index 6910d39..0f778e0 100644
--- a/ospfd/ospfd.h
+++ b/ospfd/ospfd.h
@@ -539,9 +539,9 @@
 int ospf_area_nssa_set (struct ospf *, struct in_addr);
 int ospf_area_nssa_unset (struct ospf *, struct in_addr);
 int ospf_area_nssa_translator_role_set (struct ospf *, struct in_addr, int);
-int ospf_area_export_list_set (struct ospf *, struct ospf_area *, char *);
+int ospf_area_export_list_set (struct ospf *, struct ospf_area *, const char *);
 int ospf_area_export_list_unset (struct ospf *, struct ospf_area *);
-int ospf_area_import_list_set (struct ospf *, struct ospf_area *, char *);
+int ospf_area_import_list_set (struct ospf *, struct ospf_area *, const char *);
 int ospf_area_import_list_unset (struct ospf *, struct ospf_area *);
 int ospf_area_shortcut_set (struct ospf *, struct ospf_area *, int);
 int ospf_area_shortcut_unset (struct ospf *, struct ospf_area *);
@@ -553,7 +553,7 @@
 int ospf_nbr_nbma_unset (struct ospf *, struct in_addr);
 int ospf_nbr_nbma_priority_set (struct ospf *, struct in_addr, u_char);
 int ospf_nbr_nbma_priority_unset (struct ospf *, struct in_addr);
-int ospf_nbr_nbma_poll_interval_set (struct ospf *, struct in_addr, int);
+int ospf_nbr_nbma_poll_interval_set (struct ospf *, struct in_addr, unsigned int);
 int ospf_nbr_nbma_poll_interval_unset (struct ospf *, struct in_addr);
 void ospf_prefix_list_update (struct prefix_list *);
 void ospf_init ();
