diff --git a/Android.mk b/Android.mk
index 216ee3a..108451c 100644
--- a/Android.mk
+++ b/Android.mk
@@ -11,6 +11,9 @@
 	if-linux.c if-linux-wireless.c lpf.c \
 	platform-linux.c compat/closefrom.c ifaddrs.c ipv6rs.c
 
+# Clang complains about configure.c's comparing array with null.
+LOCAL_CFLAGS += -Wno-tautological-pointer-compare
+LOCAL_CLANG_CFLAGS := -Wno-error=duplicate-decl-specifier
 LOCAL_SHARED_LIBRARIES := libc libcutils libnetutils
 LOCAL_MODULE = dhcpcd
 include $(BUILD_EXECUTABLE)
@@ -55,5 +58,6 @@
 LOCAL_MODULE := dhcpcd_test
 LOCAL_CFLAGS := -Wall -Werror -Wunused-parameter
 LOCAL_SRC_FILES := dhcpcd_test.cpp dhcp.c common.c
+LOCAL_CLANG_CFLAGS := -Wno-error=duplicate-decl-specifier
 LOCAL_MODULE_TAGS := eng tests
 include $(BUILD_NATIVE_TEST)
diff --git a/NOTICE b/NOTICE
index 69987c8..73598aa 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
 dhcpcd - DHCP client daemon
-Copyright 2006-2008 Roy Marples <roy@marples.name>
+Copyright (c) 2006-2012 Roy Marples <roy@marples.name>
 All rights reserved
 
 Redistribution and use in source and binary forms, with or without
diff --git a/dhcpcd-hooks/25-static-routes.conf b/dhcpcd-hooks/25-static-routes.conf
new file mode 100755
index 0000000..c6b7c4a
--- /dev/null
+++ b/dhcpcd-hooks/25-static-routes.conf
@@ -0,0 +1,61 @@
+# Set dhcp.<iface>.routeN.dest and dhcp.<iface>.routeN.via properties with
+# the static routes provided by the DHCP server.
+
+# CAUTION
+#
+# Placing this in the hooks directory will allow DHCP servers to push static
+# routes to ALL of the interfaces that use the directory.
+#
+# To avoid this, create separate dhcpcd configurations, one for the interfaces
+# that should accept static routes and another for the interfaces that should
+# not accept static routes routes.
+
+# Add this script in the hooks directory only for the interfaces that should
+# accept static routes.
+#
+# Add "nooption classless_static_routes, static_routes" to the dhcpcd.conf
+# file for the interfaces that should not accept static routes. Do not add the
+# script to the hooks directory.
+
+next_set_interface=1
+
+set_route_props_from_list()
+{
+    while [[ $# -ge 2 ]]; do
+        setprop dhcp.${interface}.route${next_set_interface}.dest $1
+        shift
+        setprop dhcp.${interface}.route${next_set_interface}.via $1
+        shift
+        next_set_interface=$(($next_set_interface + 1))
+    done
+}
+
+unset_route_props()
+{
+    next_clear_interface=1
+    while [[ ! -z "$(getprop dhcp.${interface}.route${next_clear_interface}.dest)" ]]; do
+      setprop dhcp.${interface}.route${next_clear_interface}.dest ""
+      setprop dhcp.${interface}.route${next_clear_interface}.via ""
+      next_clear_interface=$(($next_clear_interface + 1))
+    done
+    while [[ ! -z "$(getprop dhcp.${interface}.route${next_clear_interface}.via)" ]]; do
+      setprop dhcp.${interface}.route${next_clear_interface}.dest ""
+      setprop dhcp.${interface}.route${next_clear_interface}.via ""
+      next_clear_interface=$(($next_clear_interface + 1))
+    done
+}
+
+set_route_props()
+{
+    unset_route_props
+    if [[ ! -z "${new_classless_static_routes}" ]]; then
+        set_route_props_from_list ${new_classless_static_routes}
+    else
+        set_route_props_from_list ${new_static_routes}
+    fi
+}
+
+case "${reason}" in
+BOUND|INFORM|REBIND|REBOOT|RENEW|TIMEOUT)       set_route_props;;
+EXPIRE|FAIL|IPV4LL|RELEASE|STOP)                unset_route_props;;
+esac
diff --git a/if-linux.c b/if-linux.c
index 9355359..3d0bcad 100644
--- a/if-linux.c
+++ b/if-linux.c
@@ -40,13 +40,6 @@
 # define IFLA_WIRELESS (IFLA_MASTER + 1)
 #endif
 
-/* For some reason, glibc doesn't include newer flags from linux/if.h
- * However, we cannot include linux/if.h directly as it conflicts
- * with the glibc version. D'oh! */
-#ifndef IFF_LOWER_UP
-#define IFF_LOWER_UP	0x10000		/* driver signals L1 up		*/
-#endif
-
 #include <errno.h>
 #include <ctype.h>
 #include <stddef.h>
@@ -61,6 +54,15 @@
 #include "dhcp.h"
 #include "net.h"
 
+/* ANDROID change, moved this below all includes. */
+/* For some reason, glibc doesn't include newer flags from linux/if.h
+ * However, we cannot include linux/if.h directly as it conflicts
+ * with the glibc version. D'oh! */
+#ifndef IFF_LOWER_UP
+#define IFF_LOWER_UP	0x10000		/* driver signals L1 up		*/
+#endif
+/* End of ANDROID change */
+
 static int sock_fd;
 static struct sockaddr_nl sock_nl;
 
diff --git a/ifaddrs.c b/ifaddrs.c
index 0554ee7..c36fd64 100644
--- a/ifaddrs.c
+++ b/ifaddrs.c
@@ -20,6 +20,7 @@
 #include "ifaddrs.h"
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <unistd.h>
 #include <sys/types.h>
 #include <dirent.h>
diff --git a/showlease.c b/showlease.c
index 50f96df..1257337 100644
--- a/showlease.c
+++ b/showlease.c
@@ -1,7 +1,9 @@
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <errno.h>
 #include <fcntl.h>
+#include <unistd.h>
 
 #include "dhcp.h"
 #include "config.h"
