diff --git a/trunk/PKGBUILD b/trunk/PKGBUILD
index 48425caba6ebd25544e71a12b9df64d93a2d54a7..14bda48652f9a86d472c651dcd2facaec7c0956a 100644
--- a/trunk/PKGBUILD
+++ b/trunk/PKGBUILD
@@ -11,10 +11,13 @@ url="http://www.gnu.org/software/emacs/emacs.html"
 license=('GPL3')
 depends=('librsvg' 'gpm' 'giflib' 'libxpm' 'gtk2' 'hicolor-icon-theme' 'gconf' 'desktop-file-utils' 'alsa-lib')
 install=emacs.install
-source=(ftp://ftp.gnu.org/gnu/emacs/$pkgname-$pkgver.tar.bz2{,.sig} emacs-subversion17.patch)
+source=(ftp://ftp.gnu.org/gnu/emacs/$pkgname-$pkgver.tar.bz2{,.sig}
+  emacs-subversion17.patch
+  emacs-23.3-xgselect_init.patch)
 md5sums=('070c68ad8e3c31fb3cb2414feaf5e6f0'
          '55eb16eb48b44987693c0e3ea5ab8075'
-         '12e2e7a66df5cc5ded54e1d30083a1fb')
+         '12e2e7a66df5cc5ded54e1d30083a1fb'
+	 '0d3b3d701ba1295613ace30e8d67ca88')
 
 build() {
   cd "$srcdir"/$pkgname-$pkgver
diff --git a/trunk/emacs-23.3-xgselect_init.patch b/trunk/emacs-23.3-xgselect_init.patch
new file mode 100644
index 0000000000000000000000000000000000000000..f3168e0e25276a3d3f3c0b17889f03218c30ff38
--- /dev/null
+++ b/trunk/emacs-23.3-xgselect_init.patch
@@ -0,0 +1,13 @@
+diff -up emacs-23.3/src/xgselect.c.xgselect_init emacs-23.3/src/xgselect.c
+--- emacs-23.3/src/xgselect.c.xgselect_init	2011-01-08 18:45:14.000000000 +0100
++++ emacs-23.3/src/xgselect.c	2011-11-11 13:00:53.211765255 +0100
+@@ -55,6 +55,9 @@ xg_select (max_fds, rfds, wfds, efds, ti
+   do {
+     if (n_gfds > gfds_size) 
+       {
++        if (gfds_size == 0)
++          xgselect_initialize ();
++
+         while (n_gfds > gfds_size) 
+           gfds_size *= 2;
+         xfree (gfds);