diff --git a/SOURCES/bz1181107-global-data-after-parse.patch b/SOURCES/bz1181107-global-data-after-parse.patch
new file mode 100644
index 0000000..ebe2971
--- /dev/null
+++ b/SOURCES/bz1181107-global-data-after-parse.patch
@@ -0,0 +1,113 @@
+From 87088c1751b5788a30062f55a1b585c4eb5db5bf Mon Sep 17 00:00:00 2001
+From: Ryan O'Hara <rohara@redhat.com>
+Date: Thu, 14 May 2015 12:03:33 -0500
+Subject: [PATCH] Set global data default values after parsing config file
+
+This patch will defer setting the global data default values until
+after the config file has been parsed. This will potentially avoid two
+calls to getaddrinfo. For example, if the router_id and/or email_from
+parameters are set in the config file, there is no need to call
+getaddrinfo twice in order to set a default value. Instead, this patch
+will check to see if they values are unset after parsing the config
+file. Note that email_from and smtp_connection_to are only set to a
+default value if they are unitialized and smtp_server is specified.
+---
+ keepalived/check/check_daemon.c  |  1 +
+ keepalived/core/global_data.c    | 32 +++++++++++++++++++-------------
+ keepalived/include/global_data.h |  1 +
+ keepalived/vrrp/vrrp_daemon.c    |  1 +
+ 4 files changed, 22 insertions(+), 13 deletions(-)
+
+diff --git a/keepalived/check/check_daemon.c b/keepalived/check/check_daemon.c
+index 240ad00..3ea199e 100644
+--- a/keepalived/check/check_daemon.c
++++ b/keepalived/check/check_daemon.c
+@@ -112,6 +112,7 @@ start_check(void)
+ 		stop_check();
+ 		return;
+ 	}
++	init_global_data(global_data);
+ 
+ 	/* Post initializations */
+ 	log_message(LOG_INFO, "Configuration is using : %lu Bytes", mem_allocated);
+diff --git a/keepalived/core/global_data.c b/keepalived/core/global_data.c
+index 2ef93ac..52bbee1 100644
+--- a/keepalived/core/global_data.c
++++ b/keepalived/core/global_data.c
+@@ -88,18 +88,6 @@ set_default_mcast_group(data_t * data)
+ 	inet_stosockaddr("ff02::12", 0, &data->vrrp_mcast_group6);
+ }
+ 
+-static void
+-set_default_values(data_t * data)
+-{
+-	/* No global data so don't default */
+-	if (!data)
+-		return;
+-	set_default_router_id(data);
+-	set_default_smtp_connection_timeout(data);
+-	set_default_email_from(data);
+-	set_default_mcast_group(data);
+-}
+-
+ /* email facility functions */
+ static void
+ free_email(void *data)
+@@ -134,11 +122,29 @@ alloc_global_data(void)
+ 	new = (data_t *) MALLOC(sizeof(data_t));
+ 	new->email = alloc_list(free_email, dump_email);
+ 
+-	set_default_values(new);
++	set_default_mcast_group(new);
++
+ 	return new;
+ }
+ 
+ void
++init_global_data(data_t * data)
++{
++	if (!data->router_id) {
++		set_default_router_id(data);
++	}
++
++	if (data->smtp_server.ss_family) {
++		if (!data->smtp_connection_to) {
++			set_default_smtp_connection_timeout(data);
++		}
++		if (!data->email_from) {
++			set_default_email_from(data);
++		}
++	}
++}
++
++void
+ free_global_data(data_t * data)
+ {
+ 	free_list(data->email);
+diff --git a/keepalived/include/global_data.h b/keepalived/include/global_data.h
+index 896480c..3e429da 100644
+--- a/keepalived/include/global_data.h
++++ b/keepalived/include/global_data.h
+@@ -64,6 +64,7 @@ extern data_t *global_data; /* Global configuration data */
+ /* Prototypes */
+ extern void alloc_email(char *);
+ extern data_t *alloc_global_data(void);
++extern void init_global_data(data_t *);
+ extern void free_global_data(data_t *);
+ extern void dump_global_data(data_t *);
+ 
+diff --git a/keepalived/vrrp/vrrp_daemon.c b/keepalived/vrrp/vrrp_daemon.c
+index 755741b..b6369de 100644
+--- a/keepalived/vrrp/vrrp_daemon.c
++++ b/keepalived/vrrp/vrrp_daemon.c
+@@ -123,6 +123,7 @@ start_vrrp(void)
+ 		stop_vrrp();
+ 		return;
+ 	}
++	init_global_data(global_data);
+ 
+ #ifdef _WITH_LVS_
+ 	if (vrrp_ipvs_needed()) {
+-- 
+1.9.3
+
diff --git a/SPECS/keepalived.spec b/SPECS/keepalived.spec
index d8b8cae..df093d1 100644
--- a/SPECS/keepalived.spec
+++ b/SPECS/keepalived.spec
@@ -9,7 +9,7 @@
 Name: keepalived
 Summary: Load balancer and high availability service
 Version: 1.2.13
-Release: 6%{?dist}
+Release: 7%{?dist}
 License: GPLv2+
 URL: http://www.keepalived.org/
 Group: System Environment/Daemons
@@ -18,6 +18,7 @@ Source0: http://www.keepalived.org/software/keepalived-%{version}.tar.gz
 Source1: keepalived.service
 
 Patch0: bz1085535-keepalived-man-snmp.patch
+Patch1: bz1181107-global-data-after-parse.patch
 
 Requires(post): systemd
 Requires(preun): systemd
@@ -46,6 +47,7 @@ Keepalived also implements the Virtual Router Redundancy Protocol
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
 
 %build
 %configure \
@@ -101,6 +103,9 @@ Keepalived also implements the Virtual Router Redundancy Protocol
 %{_mandir}/man8/keepalived.8*
 
 %changelog
+* Thu Jun 25 2015 Ryan O'Hara <rohara@redhat.com> - 1.2.13-7
+- Set global default values after parsing config file (#1181107)
+
 * Tue Nov 18 2014 Ryan O'Hara <rohara@redhat.com> - 1.2.13-6
 - Fix typo in changelog