diff --git a/networking/udhcp/leases.c b/networking/udhcp/leases.c
index 81acb99..4999d80 100644
--- a/networking/udhcp/leases.c
+++ b/networking/udhcp/leases.c
@@ -1,15 +1,12 @@
 /* vi: set sw=4 ts=4: */
 /*
- * leases.c -- tools to manage DHCP leases
  * Russ Dill <Russ.Dill@asu.edu> July 2001
  *
  * Licensed under GPLv2, see file LICENSE in this tarball for details.
  */
-
 #include "common.h"
 #include "dhcpd.h"
 
-
 /* Find the oldest expired lease, NULL if there are no expired leases */
 static struct dyn_lease *oldest_expired_lease(void)
 {
@@ -28,7 +25,6 @@
 	return oldest_lease;
 }
 
-
 /* Clear out all leases with matching nonzero chaddr OR yiaddr.
  * If chaddr == NULL, this is a conflict lease.
  */
@@ -45,8 +41,7 @@
 	}
 }
 
-
-/* Add a lease into the table, clearing out any old ones
+/* Add a lease into the table, clearing out any old ones.
  * If chaddr == NULL, this is a conflict lease.
  */
 struct dyn_lease* FAST_FUNC add_lease(
@@ -84,14 +79,12 @@
 	return oldest;
 }
 
-
 /* True if a lease has expired */
 int FAST_FUNC is_expired_lease(struct dyn_lease *lease)
 {
 	return (lease->expires < (leasetime_t) time(NULL));
 }
 
-
 /* Find the first lease that matches MAC, NULL if no match */
 struct dyn_lease* FAST_FUNC find_lease_by_mac(const uint8_t *mac)
 {
@@ -104,7 +97,6 @@
 	return NULL;
 }
 
-
 /* Find the first lease that matches IP, NULL is no match */
 struct dyn_lease* FAST_FUNC find_lease_by_nip(uint32_t nip)
 {
@@ -117,7 +109,6 @@
 	return NULL;
 }
 
-
 /* Check if the IP is taken; if it is, add it to the lease table */
 static int nobody_responds_to_arp(uint32_t nip, const uint8_t *safe_mac)
 {
@@ -138,7 +129,6 @@
 	return 0;
 }
 
-
 /* Find a new usable (we think) address */
 uint32_t FAST_FUNC find_free_or_expired_nip(const uint8_t *safe_mac)
 {
