diff --git a/.gitignore b/.gitignore
index 3de1882..19e5665 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/python-ldap-2.4.6.tar.gz
+SOURCES/python-ldap-2.4.15.tar.gz
diff --git a/.python-ldap.metadata b/.python-ldap.metadata
index bde5558..ca1f90e 100644
--- a/.python-ldap.metadata
+++ b/.python-ldap.metadata
@@ -1 +1 @@
-64b45faeaf97c602dc776eba48547dd720e624c2 SOURCES/python-ldap-2.4.6.tar.gz
+cfd116af0c0d71d250a8cf31d32051f81e3b6310 SOURCES/python-ldap-2.4.15.tar.gz
diff --git a/SOURCES/python-ldap-2.4.15-syncrepl-refreshdone.patch b/SOURCES/python-ldap-2.4.15-syncrepl-refreshdone.patch
new file mode 100644
index 0000000..3b679c6
--- /dev/null
+++ b/SOURCES/python-ldap-2.4.15-syncrepl-refreshdone.patch
@@ -0,0 +1,56 @@
+diff -up python-ldap-2.4.15/Demo/pyasn1/syncrepl.py.syncrepl-refreshdone python-ldap-2.4.15/Demo/pyasn1/syncrepl.py
+--- python-ldap-2.4.15/Demo/pyasn1/syncrepl.py.syncrepl-refreshdone	2014-03-07 15:01:11.000000000 -0500
++++ python-ldap-2.4.15/Demo/pyasn1/syncrepl.py	2014-09-26 10:31:42.360101157 -0400
+@@ -93,6 +93,9 @@ class SyncReplConsumer(ReconnectLDAPObje
+             for uuid in uuids:
+                     self.__presentUUIDs[uuid] = True
+ 
++    def syncrepl_refreshdone(self):
++        print 'Initial synchronization is now done, persist phase begins'
++
+     def perform_application_sync(self,dn,attributes,previous_attributes):
+         print 'Performing application sync for:', dn
+         return True
+diff -up python-ldap-2.4.15/Lib/ldap/syncrepl.py.syncrepl-refreshdone python-ldap-2.4.15/Lib/ldap/syncrepl.py
+--- python-ldap-2.4.15/Lib/ldap/syncrepl.py.syncrepl-refreshdone	2014-03-07 15:01:12.000000000 -0500
++++ python-ldap-2.4.15/Lib/ldap/syncrepl.py	2014-09-26 10:32:29.503115251 -0400
+@@ -330,7 +330,6 @@ class SyncreplConsumer:
+         self.__refreshDone = False
+         return self.search_ext(base, scope, **search_args)
+ 
+-
+     def syncrepl_poll(self, msgid=-1, timeout=None, all=0):
+         """
+         polls for and processes responses to the syncrepl_search() operation.
+@@ -394,12 +393,16 @@ class SyncreplConsumer:
+                         self.syncrepl_present(None, refreshDeletes=False)
+                         if 'cookie' in sim.refreshPresent:
+                             self.syncrepl_set_cookie(sim.refreshPresent['cookie'])
+-                        self.__refreshDone=sim.refreshPresent['refreshDone']
++                        if sim.refreshPresent['refreshDone']:
++                            self.__refreshDone = True
++                            self.syncrepl_refreshdone()
+                     elif sim.refreshDelete is not None:
+                         self.syncrepl_present(None, refreshDeletes=True)
+                         if 'cookie' in sim.refreshDelete:
+                             self.syncrepl_set_cookie(sim.refreshDelete['cookie'])
+-                        self.__refreshDone=sim.refreshDelete['refreshDone']
++                        if sim.refreshDelete['refreshDone']:
++                            self.__refreshDone = True
++                            self.syncrepl_refreshdone()
+                     elif sim.syncIdSet is not None:
+                         if sim.syncIdSet['refreshDeletes'] is True:
+                             self.syncrepl_delete(sim.syncIdSet['syncUUIDs'])
+@@ -467,3 +470,12 @@ class SyncreplConsumer:
+ 
+         """
+         pass
++
++    def syncrepl_refreshdone(self):
++        """
++        Called by syncrepl_poll() between refresh and persist phase.
++
++        It indicates that initial synchronization is done and persist phase
++        follows.
++        """
++        pass
diff --git a/SOURCES/python-ldap-2.4.6-dirs.patch b/SOURCES/python-ldap-2.4.6-dirs.patch
index 35c46cb..940cfe4 100644
--- a/SOURCES/python-ldap-2.4.6-dirs.patch
+++ b/SOURCES/python-ldap-2.4.6-dirs.patch
@@ -1,11 +1,13 @@
-diff -ur python-ldap-2.4.6.orig/setup.cfg python-ldap-2.4.6/setup.cfg
---- python-ldap-2.4.6.orig/setup.cfg	2011-11-27 16:28:04.000000000 +0100
-+++ python-ldap-2.4.6/setup.cfg	2012-01-02 16:20:13.840989359 +0100
-@@ -1,6 +1,5 @@
+diff -up python-ldap-2.4.15/setup.cfg.dirs python-ldap-2.4.15/setup.cfg
+--- python-ldap-2.4.15/setup.cfg.dirs	2014-09-09 09:42:01.886397107 -0400
++++ python-ldap-2.4.15/setup.cfg	2014-09-09 09:43:25.838658296 -0400
+@@ -8,8 +8,7 @@
  [_ldap]
--library_dirs = /opt/openldap-RE24/lib
--include_dirs = /opt/openldap-RE24/include /usr/include/sasl
+ 
+ # Define extra include and library dirs if needed
+-library_dirs = /opt/openldap-RE24/lib /usr/lib
+-include_dirs = /opt/openldap-RE24/include /usr/include/sasl /usr/include
 +include_dirs = /usr/include/sasl
- defines = HAVE_SASL HAVE_TLS
- extra_compile_args = -g
- extra_objects = 
+ 
+ # These defines needs OpenLDAP built with
+ # ./configure --with-cyrus-sasl --with-tls
diff --git a/SPECS/python-ldap.spec b/SPECS/python-ldap.spec
index ddc2940..efcb424 100644
--- a/SPECS/python-ldap.spec
+++ b/SPECS/python-ldap.spec
@@ -1,8 +1,8 @@
 ### Abstract ###
 
 Name: python-ldap
-Version: 2.4.6
-Release: 6%{?dist}
+Version: 2.4.15
+Release: 2%{?dist}
 Epoch: 0
 License: Python
 Group: System Environment/Libraries
@@ -14,6 +14,9 @@ Source0: http://pypi.python.org/packages/source/p/python-ldap/python-ldap-%{vers
 # Fedora specific patch
 Patch0: python-ldap-2.4.6-dirs.patch
 
+# https://bugzilla.redhat.com/1122495
+Patch1: python-ldap-2.4.15-syncrepl-refreshdone.patch
+
 ### Dependencies ###
 
 Requires: openldap 
@@ -40,6 +43,7 @@ OpenLDAP 2.x libraries, and contains modules for other LDAP-related tasks
 %prep
 %setup -q -n python-ldap-%{version}
 %patch0 -p1 -b .dirs
+%patch1 -p1 -b .syncrepl-refreshdone
 
 # clean up cvs hidden files
 rm -rf Demo/Lib/ldap/.cvsignore Demo/.cvsignore Demo/Lib/ldif/.cvsignore Demo/Lib/ldap/async/.cvsignore \
@@ -66,6 +70,14 @@ sed -i 's|#! python|#!/usr/bin/python|g' Demo/simplebrowse.py
 %{python_sitearch}/python_ldap-%{version}-*.egg-info
 
 %changelog
+* Fri Sep 26 2014 Matthew Barnes <mbarnes@redhat.com> - 0:2.4.15-2
+- Add syncrepl_refreshdone() method to SyncreplConsumer class.
+  Need by FreeIPA, subsequently accepted upstream.
+- Resolves: rhbz#1122495
+
+* Tue Sep 09 2014 Matthew Barnes <mbarnes@redhat.com> - 0:2.4.15-1
+- Update to 2.4.15
+
 * Fri Jan 24 2014 Daniel Mach <dmach@redhat.com> - 02.4.6-6
 - Mass rebuild 2014-01-24