diff --git a/ospf6d/ospf6_abr.c b/ospf6d/ospf6_abr.c
index 54404ab..bb79900 100644
--- a/ospf6d/ospf6_abr.c
+++ b/ospf6d/ospf6_abr.c
@@ -787,7 +787,7 @@
 }
 
 
-
+
 /* Display functions */
 static char *
 ospf6_inter_area_prefix_lsa_get_prefix_str (struct ospf6_lsa *lsa, char *buf,
diff --git a/ospf6d/ospf6_area.c b/ospf6d/ospf6_area.c
index 9a4e30e..4b4ca13 100644
--- a/ospf6d/ospf6_area.c
+++ b/ospf6d/ospf6_area.c
@@ -288,7 +288,7 @@
   THREAD_OFF (oa->thread_intra_prefix_lsa);
 }
 
-
+
 void
 ospf6_area_show (struct vty *vty, struct ospf6_area *oa)
 {
diff --git a/ospf6d/ospf6_asbr.c b/ospf6d/ospf6_asbr.c
index c414970..6ba6cdf 100644
--- a/ospf6d/ospf6_asbr.c
+++ b/ospf6d/ospf6_asbr.c
@@ -151,7 +151,7 @@
   ospf6_lsa_originate_process (lsa, ospf6);
 }
 
-
+
 void
 ospf6_asbr_lsa_add (struct ospf6_lsa *lsa)
 {
@@ -342,7 +342,7 @@
 }
 
 
-
+
 /* redistribute function */
 
 static void
@@ -748,7 +748,7 @@
 }
 
 
-
+
 /* Routemap Functions */
 static route_map_result_t
 ospf6_routemap_rule_match_address_prefixlist (void *rule,
@@ -1168,7 +1168,7 @@
   install_element (RMAP_NODE, &ospf6_routemap_no_set_forwarding_cmd);
 }
 
-
+
 /* Display functions */
 static char *
 ospf6_as_external_lsa_get_prefix_str (struct ospf6_lsa *lsa, char *buf,
diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c
index 4bc6155..f0ef790 100644
--- a/ospf6d/ospf6_interface.c
+++ b/ospf6d/ospf6_interface.c
@@ -516,7 +516,7 @@
 
 }
 
-
+
 /* DR Election, RFC2328 section 9.4 */
 
 #define IS_ELIGIBLE(n) \
@@ -673,7 +673,7 @@
   return next_state;
 }
 
-
+
 /* Interface State Machine */
 int
 interface_up (struct thread *thread)
@@ -843,7 +843,7 @@
   return 0;
 }
 
-
+
 /* show specified interface structure */
 static int
 ospf6_interface_show (struct vty *vty, struct interface *ifp)
diff --git a/ospf6d/ospf6_interface.h b/ospf6d/ospf6_interface.h
index 34f7523..95a377f 100644
--- a/ospf6d/ospf6_interface.h
+++ b/ospf6d/ospf6_interface.h
@@ -142,7 +142,7 @@
 #define OSPF6_REFERENCE_BANDWIDTH      100000  /* Kbps */
 
 
-
+
 /* Function Prototypes */
 
 extern struct ospf6_interface *ospf6_interface_lookup_by_ifindex (int);
diff --git a/ospf6d/ospf6_intra.h b/ospf6d/ospf6_intra.h
index e909da2..c9660b6 100644
--- a/ospf6d/ospf6_intra.h
+++ b/ospf6d/ospf6_intra.h
@@ -153,7 +153,7 @@
   /* followed by ospf6 prefix(es) */
 };
 
-
+
 #define OSPF6_ROUTER_LSA_SCHEDULE(oa) \
   do { \
     if (! (oa)->thread_router_lsa \
diff --git a/ospf6d/ospf6_lsa.c b/ospf6d/ospf6_lsa.c
index 4aa2b12..2e61535 100644
--- a/ospf6d/ospf6_lsa.c
+++ b/ospf6d/ospf6_lsa.c
@@ -658,7 +658,7 @@
   ospf6_lsa_delete (lsa);
 }
 
-
+
 /* ospf6 lsa expiry */
 int
 ospf6_lsa_expire (struct thread *thread)
@@ -744,7 +744,7 @@
   return 0;
 }
 
-
+
 
 /* Fletcher Checksum -- Refer to RFC1008. */
 
@@ -790,7 +790,7 @@
 {
   vector_free (ospf6_lsa_handler_vector);
 }
-
+
 static char *
 ospf6_lsa_handler_name (struct ospf6_lsa_handler *h)
 {
diff --git a/ospf6d/ospf6_lsa.h b/ospf6d/ospf6_lsa.h
index aed89df..a85ca66 100644
--- a/ospf6d/ospf6_lsa.h
+++ b/ospf6d/ospf6_lsa.h
@@ -209,7 +209,7 @@
       continue;                                        \
     }
 
-
+
 /* Function Prototypes */
 extern const char *ospf6_lstype_name (u_int16_t type);
 extern const char *ospf6_lstype_short_name (u_int16_t type);
diff --git a/ospf6d/ospf6_message.c b/ospf6d/ospf6_message.c
index 0756ef3..ecc96f7 100644
--- a/ospf6d/ospf6_message.c
+++ b/ospf6d/ospf6_message.c
@@ -2326,7 +2326,7 @@
   return 0;
 }
 
-
+
 /* Commands */
 DEFUN (debug_ospf6_message,
        debug_ospf6_message_cmd,
@@ -2400,7 +2400,7 @@
        "Debug only receiving message\n"
        )
 
-
+
 DEFUN (no_debug_ospf6_message,
        no_debug_ospf6_message_cmd,
        "no debug ospf6 message (unknown|hello|dbdesc|lsreq|lsupdate|lsack|all)",
diff --git a/ospf6d/ospf6_neighbor.c b/ospf6d/ospf6_neighbor.c
index fb209fd..7f6c6c5 100644
--- a/ospf6d/ospf6_neighbor.c
+++ b/ospf6d/ospf6_neighbor.c
@@ -615,7 +615,7 @@
 }
 
 
-
+
 /* vty functions */
 /* show neighbor structure */
 static void
diff --git a/ospf6d/ospf6_neighbor.h b/ospf6d/ospf6_neighbor.h
index 8882189..65c43fd 100644
--- a/ospf6d/ospf6_neighbor.h
+++ b/ospf6d/ospf6_neighbor.h
@@ -148,7 +148,7 @@
 
 extern const char *ospf6_neighbor_state_str[];
 
-
+
 /* Function Prototypes */
 int ospf6_neighbor_cmp (void *va, void *vb);
 void ospf6_neighbor_dbex_init (struct ospf6_neighbor *on);
diff --git a/ospf6d/ospf6_network.h b/ospf6d/ospf6_network.h
index 0526b3e..947834d 100644
--- a/ospf6d/ospf6_network.h
+++ b/ospf6d/ospf6_network.h
@@ -22,7 +22,7 @@
 #ifndef OSPF6_NETWORK_H
 #define OSPF6_NETWORK_H
 
-
+
 
 extern int ospf6_sock;
 extern struct in6_addr allspfrouters6;
diff --git a/ospf6d/ospf6_route.c b/ospf6d/ospf6_route.c
index 5f1869a..9e6b33e 100644
--- a/ospf6d/ospf6_route.c
+++ b/ospf6d/ospf6_route.c
@@ -780,7 +780,7 @@
   XFREE (MTYPE_OSPF6_ROUTE, table);
 }
 
-
+
 /* VTY commands */
 void
 ospf6_route_show (struct vty *vty, struct ospf6_route *route)
diff --git a/ospf6d/ospf6_zebra.c b/ospf6d/ospf6_zebra.c
index 8ee63fe..85f7064 100644
--- a/ospf6d/ospf6_zebra.c
+++ b/ospf6d/ospf6_zebra.c
@@ -274,7 +274,7 @@
 
 
 
-
+
 DEFUN (show_zebra,
        show_zebra_cmd,
        "show zebra",
@@ -602,7 +602,7 @@
 }
 
 /* Debug */
-
+
 DEFUN (debug_ospf6_zebra_sendrecv,
        debug_ospf6_zebra_sendrecv_cmd,
        "debug ospf6 zebra (send|recv)",
diff --git a/ospf6d/ospf6d.c b/ospf6d/ospf6d.c
index 3fdbda1..3cdd5c1 100644
--- a/ospf6d/ospf6d.c
+++ b/ospf6d/ospf6d.c
@@ -77,7 +77,7 @@
   return prev;
 }
 
-
+
 /* show database functions */
 DEFUN (show_version_ospf6,
        show_version_ospf6_cmd,
diff --git a/ospf6d/ospf6d.h b/ospf6d/ospf6d.h
index 0c86386..78ae1a1 100644
--- a/ospf6d/ospf6d.h
+++ b/ospf6d/ospf6d.h
@@ -127,7 +127,7 @@
       return CMD_SUCCESS; \
     }
 
-
+
 /* Function Prototypes */
 extern struct route_node *route_prev (struct route_node *node);
 
