diff --git a/ripngd/ripng_debug.c b/ripngd/ripng_debug.c
index 33a7cf6..c1eb39b 100644
--- a/ripngd/ripng_debug.c
+++ b/ripngd/ripng_debug.c
@@ -28,7 +28,7 @@
 unsigned long ripng_debug_event = 0;
 unsigned long ripng_debug_packet = 0;
 unsigned long ripng_debug_zebra = 0;
-
+
 DEFUN (show_debugging_ripng,
        show_debugging_ripng_cmd,
        "show debugging ripng",
diff --git a/ripngd/ripng_interface.c b/ripngd/ripng_interface.c
index 6718fff..8717bfb 100644
--- a/ripngd/ripng_interface.c
+++ b/ripngd/ripng_interface.c
@@ -38,7 +38,7 @@
 
 #include "ripngd/ripngd.h"
 #include "ripngd/ripng_debug.h"
-
+
 /* If RFC2133 definition is used. */
 #ifndef IPV6_JOIN_GROUP
 #define IPV6_JOIN_GROUP  IPV6_ADD_MEMBERSHIP 
@@ -505,7 +505,7 @@
 
   return 0;
 }
-
+
 /* RIPng enable interface vector. */
 vector ripng_enable_if;
 
@@ -812,7 +812,7 @@
   for (ALL_LIST_ELEMENTS_RO (iflist, node, ifp))
     ripng_enable_apply (ifp);
 }
-
+
 /* Clear all network and neighbor configuration */
 void
 ripng_clean_network ()
@@ -835,7 +835,7 @@
       vector_slot (ripng_enable_if, i) = NULL;
     }
 }
-
+
 /* Vector to store passive-interface name. */
 vector Vripng_passive_interface;
 
@@ -1103,7 +1103,7 @@
 {
   return ripng_passive_interface_unset (vty, argv[0]);
 }
-
+
 static struct ripng_interface *
 ri_new (void)
 {
diff --git a/ripngd/ripng_main.c b/ripngd/ripng_main.c
index 7525a26..acc980d 100644
--- a/ripngd/ripng_main.c
+++ b/ripngd/ripng_main.c
@@ -127,7 +127,7 @@
     }
   exit (status);
 }
-
+
 /* SIGHUP handler. */
 static void 
 sighup (void)
@@ -182,7 +182,7 @@
     .handler = &sigint,
   },
 };
-
+
 /* RIPngd main routine. */
 int
 main (int argc, char **argv)
diff --git a/ripngd/ripng_peer.c b/ripngd/ripng_peer.c
index c04456b..b12e146 100644
--- a/ripngd/ripng_peer.c
+++ b/ripngd/ripng_peer.c
@@ -38,7 +38,7 @@
 
 /* Linked list of RIPng peer. */
 struct list *peer_list;
-
+
 static struct ripng_peer *
 ripng_peer_new (void)
 {
diff --git a/ripngd/ripng_routemap.c b/ripngd/ripng_routemap.c
index 0f5cca3..f4fadb6 100644
--- a/ripngd/ripng_routemap.c
+++ b/ripngd/ripng_routemap.c
@@ -29,7 +29,7 @@
 #include "sockunion.h"
 
 #include "ripngd/ripngd.h"
-
+
 struct rip_metric_modifier
 {
   enum 
@@ -42,7 +42,7 @@
   u_char metric;
 };
 
-
+
 static int
 ripng_route_match_add (struct vty *vty, struct route_map_index *index,
 		       const char *command, const char *arg)
@@ -130,7 +130,7 @@
     }
   return CMD_SUCCESS;
 }
-
+
 /* `match metric METRIC' */
 /* Match function return 1 if match is success else return zero. */
 static route_map_result_t
@@ -184,7 +184,7 @@
   route_match_metric_compile,
   route_match_metric_free
 };
-
+
 /* `match interface IFNAME' */
 /* Match function return 1 if match is success else return zero. */
 static route_map_result_t
@@ -284,7 +284,7 @@
   route_match_tag_compile,
   route_match_tag_free
 };
-
+
 /* `set metric METRIC' */
 
 /* Set metric to attribute. */
@@ -496,7 +496,7 @@
   route_set_tag_compile,
   route_set_tag_free
 };
-
+
 #define MATCH_STR "Match values from routing table\n"
 #define SET_STR "Set values in destination routing protocol\n"
 
diff --git a/ripngd/ripng_zebra.c b/ripngd/ripng_zebra.c
index 8e76606..68f37be 100644
--- a/ripngd/ripng_zebra.c
+++ b/ripngd/ripng_zebra.c
@@ -41,7 +41,7 @@
 int ripng_interface_delete (int, struct zclient *, zebra_size_t);
 int ripng_interface_address_add (int, struct zclient *, zebra_size_t);
 int ripng_interface_address_delete (int, struct zclient *, zebra_size_t);
-
+
 void
 ripng_zebra_ipv6_add (struct prefix_ipv6 *p, struct in6_addr *nexthop,
 		      unsigned int ifindex, u_char metric)
@@ -206,7 +206,7 @@
   ripng->route_map[type].name = NULL;
   ripng->route_map[type].map = NULL;
 }
-
+
 /* Redistribution types */
 static struct {
   int type;
diff --git a/ripngd/ripngd.c b/ripngd/ripngd.c
index 318f600..941c3a0 100644
--- a/ripngd/ripngd.c
+++ b/ripngd/ripngd.c
@@ -95,7 +95,7 @@
 {
   XFREE (MTYPE_RIPNG_ROUTE, rinfo);
 }
-
+
 /* Create ripng socket. */
 static int 
 ripng_make_socket (void)
@@ -1886,7 +1886,7 @@
 			    NULL, ifp);
 }
 
-
+
 static int
 ripng_update_jitter (int time)
 {
@@ -1928,7 +1928,7 @@
       break;
     }
 }
-
+
 
 /* Print out routes update time. */
 static void
@@ -2767,7 +2767,7 @@
 {
   ripng_distribute_update_all(NULL);
 }
-
+
 /* delete all the added ripng routes. */
 void
 ripng_clean()
