diff --git a/SOURCES/dhclient-script b/SOURCES/dhclient-script
index ac2b7ac..30a4d48 100644
--- a/SOURCES/dhclient-script
+++ b/SOURCES/dhclient-script
@@ -3,7 +3,7 @@
 # dhclient-script: Network interface configuration script run by
 #                  dhclient based on DHCP client communication
 #
-# Copyright (C) 2008, 2009, 2010  Red Hat, Inc.
+# Copyright (C) 2008-2014  Red Hat, Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -19,6 +19,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 # Author(s): David Cantrell <dcantrell@redhat.com>
+#            Jiri Popelka <jpopelka@redhat.com>
 #
 # ----------
 # This script is a rewrite/reworking on dhclient-script originally
@@ -109,6 +110,7 @@ make_resolv_conf() {
        [ -n "${new_domain_name_servers}" ] ||
        [ -n "${new_domain_search}" ]; then
         rscf="$(mktemp ${TMPDIR:-/tmp}/XXXXXX)"
+        [[ -z "${rscf}" ]] && return
         echo "; generated by /usr/sbin/dhclient-script" > ${rscf}
 
         if [ -n "${SEARCH}" ]; then
@@ -148,6 +150,7 @@ make_resolv_conf() {
     elif [ -n "${new_dhcp6_name_servers}" ] ||
          [ -n "${new_dhcp6_domain_search}" ]; then
         rscf="$(mktemp ${TMPDIR:-/tmp}/XXXXXX)"
+        [[ -z "${rscf}" ]] && return
         echo "; generated by /usr/sbin/dhclient-script" > ${rscf}
 
         if [ -n "${SEARCH}" ]; then
@@ -351,7 +354,8 @@ dhconfig() {
        [ ! "${old_broadcast_address}" = "${new_broadcast_address}" ] ||
        [ ! "${old_routers}" = "${new_routers}" ] ||
        [ ! "${old_interface_mtu}" = "${new_interface_mtu}" ]; then
-        ip -4 addr add ${new_ip_address}/${new_prefix} broadcast ${new_broadcast_address} dev ${interface} >/dev/null 2>&1
+        ip -4 addr add ${new_ip_address}/${new_prefix} broadcast ${new_broadcast_address} dev ${interface} \
+           valid_lft ${new_dhcp_lease_time} preferred_lft ${new_dhcp_lease_time} >/dev/null 2>&1
         ip link set dev ${interface} up
 
         # The 576 MTU is only used for X.25 and dialup connections
@@ -479,6 +483,9 @@ dhconfig() {
             fi
         fi
 
+    else # RENEW||REBIND - only update address lifetimes
+        ip -4 addr change ${new_ip_address}/${new_prefix} broadcast ${new_broadcast_address} dev ${interface} \
+           valid_lft ${new_dhcp_lease_time} preferred_lft ${new_dhcp_lease_time} >/dev/null 2>&1
     fi
 
     if [ ! "${new_ip_address}" = "${alias_ip_address}" ] &&
@@ -543,7 +550,8 @@ dhconfig() {
 # using that address for traffic.
 add_ipv6_addr_with_DAD() {
             ip -6 addr add ${new_ip6_address}/${new_ip6_prefixlen} \
-                dev ${interface} scope global
+                dev ${interface} scope global valid_lft ${new_max_life} \
+                                          preferred_lft ${new_preferred_life}
 
             # repeatedly test whether newly added address passed
             # duplicate address detection (DAD)
@@ -595,6 +603,10 @@ dh6config() {
 
             if [  ! "${new_ip6_address}" = "${old_ip6_address}" ]; then
                 add_ipv6_addr_with_DAD
+            else # only update address lifetimes
+                ip -6 addr change ${new_ip6_address}/${new_ip6_prefixlen} \
+                   dev ${interface} scope global valid_lft ${new_max_life} \
+                                             preferred_lft ${new_preferred_life}
             fi
 
             if [ ! "${new_dhcp6_name_servers}" = "${old_dhcp6_name_servers}" ] ||
@@ -766,7 +778,9 @@ case "${reason}" in
                 ip -4 addr flush dev ${interface} label ${interface}:0 >/dev/null 2>&1
             fi
 
-            ip -4 addr add ${new_ip_address}/${new_prefix} broadcast ${new_broadcast_address} dev ${interface}
+            ip -4 addr add ${new_ip_address}/${new_prefix} \
+                broadcast ${new_broadcast_address} dev ${interface} \
+                valid_lft ${new_dhcp_lease_time} preferred_lft ${new_dhcp_lease_time}
             set ${new_routers}
 
             if ping -q -c 1 -w 10 -I ${interface} ${1}; then
diff --git a/SPECS/dhcp.spec b/SPECS/dhcp.spec
index f7ff8d2..b858e34 100644
--- a/SPECS/dhcp.spec
+++ b/SPECS/dhcp.spec
@@ -18,7 +18,7 @@
 Summary:  Dynamic host configuration protocol software
 Name:     dhcp
 Version:  4.2.5
-Release:  23%{?dist}
+Release:  27%{?dist}
 # NEVER CHANGE THE EPOCH on this package.  The previous maintainer (prior to
 # dcantrell maintaining the package) made incorrect use of the epoch and
 # that's why it is at 12 now.  It should have never been used, but it was.
@@ -619,6 +619,18 @@ done
 
 
 %changelog
+* Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 12:4.2.5-27
+- Mass rebuild 2014-01-24
+
+* Mon Jan 13 2014 Jiri Popelka <jpopelka@redhat.com> - 12:4.2.5-26
+- update address lifetimes on RENEW/RENEW6 (#1032809)
+
+* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 12:4.2.5-25
+- Mass rebuild 2013-12-27
+
+* Fri Nov 22 2013 Jiri Popelka <jpopelka@redhat.com> - 12:4.2.5-24
+- dhclient-script: set address lifetimes (#1032809)
+
 * Tue Nov 05 2013 Jiri Popelka <jpopelka@redhat.com> - 12:4.2.5-23
 - dhcpd rejects the udp packet with checksum=0xffff (#1016143)