diff --git a/srcpkgs/rdesktop/patches/rdesktop-libao.patch b/srcpkgs/rdesktop/patches/rdesktop-libao.patch
new file mode 100644
index 00000000000..11bdff66eab
--- /dev/null
+++ b/srcpkgs/rdesktop/patches/rdesktop-libao.patch
@@ -0,0 +1,19 @@
+--- rdpsnd_libao.c.ao	2007-10-30 14:57:30.000000000 +0100
++++ rdpsnd_libao.c	2010-12-02 21:22:39.000000000 +0100
+@@ -76,7 +76,7 @@ libao_open(void)
+ 	format.channels = 2;
+ 	format.rate = 44100;
+ 	format.byte_format = AO_FMT_NATIVE;
+-
++	format.matrix = NULL;
+ 
+ 	o_device = ao_open_live(default_driver, &format, NULL);
+ 	if (o_device == NULL)
+@@ -115,6 +115,7 @@ libao_set_format(RD_WAVEFORMATEX * pwfx)
+ 	format.channels = pwfx->nChannels;
+ 	format.rate = 44100;
+ 	format.byte_format = AO_FMT_NATIVE;
++	format.matrix = NULL;
+ 
+ 	if (o_device != NULL)
+ 		ao_close(o_device);
diff --git a/srcpkgs/rdesktop/patches/rdesktop-send_physical_buttons.diff b/srcpkgs/rdesktop/patches/rdesktop-send_physical_buttons.diff
new file mode 100644
index 00000000000..faa9e9508d1
--- /dev/null
+++ b/srcpkgs/rdesktop/patches/rdesktop-send_physical_buttons.diff
@@ -0,0 +1,69 @@
+Index: rdesktop.c
+===================================================================
+RCS file: /cvsroot/rdesktop/rdesktop/rdesktop.c,v
+retrieving revision 1.163
+diff -u -r1.163 rdesktop.c
+--- rdesktop.c	5 Apr 2008 06:15:45 -0000	1.163
++++ rdesktop.c	5 Aug 2008 11:46:04 -0000
+@@ -73,6 +73,7 @@
+ int g_win_button_size = 0;	/* If zero, disable single app mode */
+ RD_BOOL g_bitmap_compression = True;
+ RD_BOOL g_sendmotion = True;
++RD_BOOL g_send_physical_buttons = True;
+ RD_BOOL g_bitmap_cache = True;
+ RD_BOOL g_bitmap_cache_persist_enable = False;
+ RD_BOOL g_bitmap_cache_precache = True;
+@@ -152,6 +153,7 @@
+ 	fprintf(stderr, "   -B: use BackingStore of X-server (if available)\n");
+ 	fprintf(stderr, "   -e: disable encryption (French TS)\n");
+ 	fprintf(stderr, "   -E: disable encryption from client to server\n");
++	fprintf(stderr, "   -M: do not map logical mouse buttons to physical\n");
+ 	fprintf(stderr, "   -m: do not send motion events\n");
+ 	fprintf(stderr, "   -C: use private colour map\n");
+ 	fprintf(stderr, "   -D: hide window manager decorations\n");
+@@ -450,7 +452,7 @@
+ #endif
+ 
+ 	while ((c = getopt(argc, argv,
+-			   VNCOPT "Au:L:d:s:c:p:n:k:g:fbBeEmzCDKS:T:NX:a:x:Pr:045h?")) != -1)
++			   VNCOPT "Au:L:d:s:c:p:n:k:g:fbBeEMmzCDKS:T:NX:a:x:Pr:045h?")) != -1)
+ 	{
+ 		switch (c)
+ 		{
+@@ -584,6 +586,9 @@
+ 			case 'E':
+ 				g_packet_encryption = False;
+ 				break;
++			case 'M':
++				g_send_physical_buttons = False;
++				break;
+ 			case 'm':
+ 				g_sendmotion = False;
+ 				break;
+Index: xwin.c
+===================================================================
+RCS file: /cvsroot/rdesktop/rdesktop/xwin.c,v
+retrieving revision 1.235
+diff -u -r1.235 xwin.c
+--- xwin.c	11 Jul 2008 03:51:23 -0000	1.235
++++ xwin.c	5 Aug 2008 11:46:06 -0000
+@@ -36,6 +36,7 @@
+ extern int g_ypos;
+ extern int g_pos;
+ extern RD_BOOL g_sendmotion;
++extern RD_BOOL g_send_physical_buttons;
+ extern RD_BOOL g_fullscreen;
+ extern RD_BOOL g_grab_keyboard;
+ extern RD_BOOL g_hide_decorations;
+@@ -2190,7 +2191,8 @@
+ 	   receive physical buttons (true in mstsc as well) and
+ 	   logical button behavior depends on the remote desktop's own
+ 	   mouse settings */
+-	xevent.xbutton.button = g_pointer_log_to_phys_map[xevent.xbutton.button - 1];
++	if (g_send_physical_buttons)
++		xevent.xbutton.button = g_pointer_log_to_phys_map[xevent.xbutton.button - 1];
+ 	button = xkeymap_translate_button(xevent.xbutton.button);
+ 	if (button == 0)
+ 		return;
+
+ 	  	 
diff --git a/srcpkgs/rdesktop/template b/srcpkgs/rdesktop/template
new file mode 100644
index 00000000000..13a7ee69bf5
--- /dev/null
+++ b/srcpkgs/rdesktop/template
@@ -0,0 +1,13 @@
+# Template file for 'rdesktop'
+pkgname=rdesktop
+version=1.7.1
+revision=1
+build_style=gnu-configure
+configure_args="--with-debug --with-ipv6 ac_cv_prog_STRIP=/bin/true"
+makedepends="openssl-devel libao-devel libsamplerate-devel libXrandr-devel"
+short_desc="An open source client for Windows Remote Desktop Services"
+maintainer="Juan RP <xtraeme@gmail.com>"
+license="GPL-3"
+homepage="http://www.rdesktop.org/"
+distfiles="${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-${version}.tar.gz"
+checksum=d1ea43adeb23ef1ba425983670372a87cd7560baf8c94ba34215105ed2ef8479