diff --git a/python-2.6-ctypes-noexecmem.patch b/python-2.6-ctypes-noexecmem.patch
index 9ce5c0b..8d2890e 100644
--- a/python-2.6-ctypes-noexecmem.patch
+++ b/python-2.6-ctypes-noexecmem.patch
@@ -9,7 +9,7 @@ diff -ur Python-2.6~/Modules/_ctypes/callbacks.c Python-2.6/Modules/_ctypes/call
 -		FreeClosure(self->pcl);
 +	if (self->pcl_write)
 +		ffi_closure_free(self->pcl_write);
- 	PyObject_Del(self);
+ 	PyObject_GC_Del(self);
  }
  
 @@ -373,7 +373,8 @@
diff --git a/python-2.6.4-autotool-intermediates.patch b/python-2.6.4-autotool-intermediates.patch
index 0ba6d07..4c40369 100644
--- a/python-2.6.4-autotool-intermediates.patch
+++ b/python-2.6.4-autotool-intermediates.patch
@@ -1,14 +1,14 @@
 diff -up ./configure.autotool-intermediates ./configure
---- ./configure.autotool-intermediates	2010-03-12 13:59:21.000000000 -0500
-+++ ./configure	2010-03-12 13:59:26.000000000 -0500
+--- ./configure.autotool-intermediates	2010-03-22 19:57:14.000000000 -0400
++++ ./configure	2010-03-22 19:57:21.000000000 -0400
 @@ -1,5 +1,5 @@
  #! /bin/sh
--# From configure.in Revision: 74982 .
-+# From configure.in Revision: 75132 .
+-# From configure.in Revision: 78813 .
++# From configure.in Revision: 78820 .
  # Guess values for system-dependent variables and create Makefiles.
  # Generated by GNU Autoconf 2.61 for python 2.6.
  #
-@@ -1343,6 +1343,8 @@ Optional Packages:
+@@ -1347,6 +1347,8 @@ Optional Packages:
    --with-suffix=.exe      set executable suffix
    --with-pydebug          build with Py_DEBUG defined
    --with-libs='lib1 ...'  link against additional libs
@@ -17,7 +17,7 @@ diff -up ./configure.autotool-intermediates ./configure
    --with-system-ffi       build _ctypes module using an installed ffi library
    --with-signal-module    disable/enable signal module
    --with-dec-threads      use DEC Alpha/OSF1 thread-safe libraries
-@@ -1354,6 +1356,7 @@ Optional Packages:
+@@ -1358,6 +1360,7 @@ Optional Packages:
    --with(out)-doc-strings disable/enable documentation strings
    --with(out)-tsc         enable/disable timestamp counter profile
    --with(out)-pymalloc    disable/enable specialized mallocs
@@ -25,7 +25,7 @@ diff -up ./configure.autotool-intermediates ./configure
    --with-wctype-functions use wctype.h functions
    --with-fpectl           enable SIGFPE catching
    --with-libm=STRING      math library
-@@ -3855,7 +3858,7 @@ else
+@@ -3900,7 +3903,7 @@ else
    { echo "$as_me:$LINENO: result: no" >&5
  echo "${ECHO_T}no" >&6; }
  fi
@@ -34,7 +34,7 @@ diff -up ./configure.autotool-intermediates ./configure
  
  
  
-@@ -4146,7 +4149,7 @@ _ACEOF
+@@ -4191,7 +4194,7 @@ _ACEOF
  	  ;;
      OSF*)
  	  LDLIBRARY='libpython$(VERSION).so'
@@ -43,7 +43,7 @@ diff -up ./configure.autotool-intermediates ./configure
  	  RUNSHARED=LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}
  	  ;;
      atheos*)
-@@ -5394,7 +5397,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
+@@ -5450,7 +5453,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
  else
    ac_cv_header_stdc=no
  fi
@@ -52,7 +52,7 @@ diff -up ./configure.autotool-intermediates ./configure
  
  fi
  
-@@ -5415,7 +5418,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
+@@ -5471,7 +5474,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
  else
    ac_cv_header_stdc=no
  fi
@@ -61,7 +61,7 @@ diff -up ./configure.autotool-intermediates ./configure
  
  fi
  
-@@ -6513,7 +6516,7 @@ _ACEOF
+@@ -6569,7 +6572,7 @@ _ACEOF
  
  
  fi
@@ -70,7 +70,7 @@ diff -up ./configure.autotool-intermediates ./configure
  
  { echo "$as_me:$LINENO: result: $was_it_defined" >&5
  echo "${ECHO_T}$was_it_defined" >&6; }
-@@ -7043,7 +7046,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
+@@ -7099,7 +7102,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
  else
    ac_cv_type_uid_t=no
  fi
@@ -79,7 +79,7 @@ diff -up ./configure.autotool-intermediates ./configure
  
  fi
  { echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5
-@@ -13984,6 +13987,19 @@ echo "${ECHO_T}no" >&6; }
+@@ -14045,6 +14048,19 @@ echo "${ECHO_T}no" >&6; }
  fi
  
  
@@ -99,7 +99,7 @@ diff -up ./configure.autotool-intermediates ./configure
  # Check for use of the system libffi library
  { echo "$as_me:$LINENO: checking for --with-system-ffi" >&5
  echo $ECHO_N "checking for --with-system-ffi... $ECHO_C" >&6; }
-@@ -14163,7 +14179,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
+@@ -14224,7 +14240,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
  else
    unistd_defines_pthreads=no
  fi
@@ -108,7 +108,7 @@ diff -up ./configure.autotool-intermediates ./configure
  
      { echo "$as_me:$LINENO: result: $unistd_defines_pthreads" >&5
  echo "${ECHO_T}$unistd_defines_pthreads" >&6; }
-@@ -15777,7 +15793,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
+@@ -15838,7 +15854,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
    $EGREP "yes" >/dev/null 2>&1; then
    ipv6type=$i
  fi
@@ -117,7 +117,7 @@ diff -up ./configure.autotool-intermediates ./configure
  
  			;;
  		kame)
-@@ -15800,7 +15816,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
+@@ -15861,7 +15877,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
  				ipv6libdir=/usr/local/v6/lib
  				ipv6trylibc=yes
  fi
@@ -126,7 +126,7 @@ diff -up ./configure.autotool-intermediates ./configure
  
  			;;
  		linux-glibc)
-@@ -15821,7 +15837,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
+@@ -15882,7 +15898,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
    ipv6type=$i;
  				ipv6trylibc=yes
  fi
@@ -135,7 +135,7 @@ diff -up ./configure.autotool-intermediates ./configure
  
  			;;
  		linux-inet6)
-@@ -15859,7 +15875,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
+@@ -15920,7 +15936,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
  				ipv6lib=inet6;
  				ipv6libdir=/usr/local/v6/lib
  fi
@@ -144,7 +144,7 @@ diff -up ./configure.autotool-intermediates ./configure
  
  			;;
  		v6d)
-@@ -15882,7 +15898,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
+@@ -15943,7 +15959,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
  				ipv6libdir=/usr/local/v6/lib;
  				BASECFLAGS="-I/usr/local/v6/include $BASECFLAGS"
  fi
@@ -153,7 +153,7 @@ diff -up ./configure.autotool-intermediates ./configure
  
  			;;
  		zeta)
-@@ -15904,7 +15920,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
+@@ -15965,7 +15981,7 @@ if (eval "$ac_cpp conftest.$ac_ext") 2>&
  				ipv6lib=inet6;
  				ipv6libdir=/usr/local/v6/lib
  fi
@@ -162,7 +162,7 @@ diff -up ./configure.autotool-intermediates ./configure
  
  			;;
  		esac
-@@ -16057,6 +16073,166 @@ fi
+@@ -16118,6 +16134,166 @@ fi
  { echo "$as_me:$LINENO: result: $with_pymalloc" >&5
  echo "${ECHO_T}$with_pymalloc" >&6; }
  
@@ -329,7 +329,16 @@ diff -up ./configure.autotool-intermediates ./configure
  # Check for --with-wctype-functions
  { echo "$as_me:$LINENO: checking for --with-wctype-functions" >&5
  echo $ECHO_N "checking for --with-wctype-functions... $ECHO_C" >&6; }
-@@ -23497,7 +23673,7 @@ cat >>confdefs.h <<\_ACEOF
+@@ -23743,7 +23919,7 @@ cat >>confdefs.h <<\_ACEOF
+ _ACEOF
+ 
+ fi
+-rm -f -r conftest*
++rm -f conftest*
+ 
+   cat >conftest.$ac_ext <<_ACEOF
+ /* confdefs.h.  */
+@@ -23762,7 +23938,7 @@ cat >>confdefs.h <<\_ACEOF
  _ACEOF
  
  fi
@@ -338,7 +347,7 @@ diff -up ./configure.autotool-intermediates ./configure
  
  fi
  
-@@ -23767,7 +23943,7 @@ cat >>confdefs.h <<\_ACEOF
+@@ -24032,7 +24208,7 @@ cat >>confdefs.h <<\_ACEOF
  _ACEOF
  
  fi
diff --git a/python26.spec b/python26.spec
index 3f7aee5..7d24a08 100644
--- a/python26.spec
+++ b/python26.spec
@@ -91,8 +91,8 @@
 
 Summary: An interpreted, interactive, object-oriented programming language
 Name: %{python}
-Version: 2.6.4
-Release: 23%{?dist}
+Version: 2.6.5
+Release: 1%{?dist}
 License: Python
 Group: Development/Languages
 Provides: python-abi = %{pybasever}
@@ -305,6 +305,10 @@ Patch55: python-2.6.4-dtrace.patch
 # However, as it stands this patch is merely a copy of:
 #  http://svn.python.org/view/python/trunk/Lib/test/test_re.py?r1=35825&r2=35824&pathrev=35825
 # which is already upstream
+# Earlier versions of the patch (from the "dist-pkgs" CVS repo within RH)
+# contained additional changes that applied fixes to the internals of the regex
+# module, but these appear to have all been applied as part of 
+#  http://bugs.python.org/issue931848
 Patch101: python-2.3.4-lib64-regex.patch
 
 # Only used when "%{_lib}" == "lib64"
@@ -339,9 +343,7 @@ Patch200: python-2.6.4-expat-version.patch
 Patch300: python-2.6.4-autotool-intermediates.patch
 
 %if %{main_python}
-Obsoletes: Distutils
-Provides: Distutils
-Obsoletes: python2 
+Obsoletes: python2 < 2.6.5
 Provides: python2 = %{version}
 Obsoletes: python-elementtree <= 1.2.6
 Obsoletes: python-sqlite < 2.3.2
@@ -412,7 +414,7 @@ Requires: %{python}%{?_isa} = %{version}-%{release}
 # package
 Conflicts: %{python} < %{version}-%{release}
 %if %{main_python}
-Obsoletes: python2-devel
+Obsoletes: python2-devel < 2.6.5
 Provides: python2-devel = %{version}-%{release}
 %endif
 
@@ -433,7 +435,7 @@ Group: Development/Tools
 Requires: %{name} = %{version}-%{release}
 Requires: %{tkinter} = %{version}-%{release}
 %if %{main_python}
-Obsoletes: python2-tools
+Obsoletes: python2-tools < 2.6.5
 Provides: python2-tools = %{version}
 %endif
 
@@ -448,7 +450,7 @@ Group: Development/Languages
 BuildRequires:  tcl, tk
 Requires: %{name} = %{version}-%{release}
 %if %{main_python}
-Obsoletes: tkinter2
+Obsoletes: tkinter2 < 2.6.5
 Provides: tkinter2 = %{version}
 %endif
 
@@ -516,8 +518,9 @@ rm -r Modules/zlib || exit 1
 # Try not disabling egg-infos, bz#414711
 #patch50 -p1 -b .egginfo
 
-%if "%{_lib}" == "lib64"
 %patch101 -p1 -b .lib64-regex
+
+%if "%{_lib}" == "lib64"
 %patch102 -p1 -b .lib64
 %endif
 
@@ -534,11 +537,6 @@ rm -r Modules/zlib || exit 1
 %patch55 -p1 -b .systemtap
 %endif
 
-%ifarch alpha ia64
-# 64bit, but not lib64 arches need this too...
-%patch101 -p1 -b .lib64-regex
-%endif
-
 %patch110 -p1 -b .selinux
 
 %patch111 -p1 -b .no-static-lib
@@ -819,8 +817,10 @@ sed \
    > %{buildroot}%{tapsetdir}/%{libpython_stp}
 %endif # with_systemtap
 
+# Drop the rpm macros file into place, to make it easy for modules to be
+# byte-compiled using this python runtime:
 mkdir -p %{buildroot}%{_sysconfdir}/rpm
-install %{SOURCE5} %{buildroot}%{_sysconfdir}/rpm/macros.python26
+install -p -m 644 %{SOURCE5} %{buildroot}%{_sysconfdir}/rpm/macros.python26
 
 %clean
 rm -fr %{buildroot}
@@ -1039,6 +1039,13 @@ rm -fr %{buildroot}
 # payload file would be unpackaged)
 
 %changelog
+* Mon Mar 22 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.5-1
+- update to 2.6.5: http://www.python.org/download/releases/2.6.5/
+- update patch 110 so that it still applies in the face of upstream r78380
+- regenerate autotooling patch
+- fix permissions on macros.python26, suppress some noise from rpmlint, and
+remove unnecessary arch-conditionality for patch 101 (Steve Traylen)
+
 * Tue Mar 16 2010 David Malcolm <dmalcolm@redhat.com> - 2.6.4-23
 - add a macros.python26 file, to make it easy for modules to ensure that they
 are byte-compiled with the correct python runtime (source 5)
