[Pkg-libvirt-commits] [gtk-vnc] 01/05: Imported Upstream version 0.5.3

Laurent Léonard trash-guest at moszumanska.debian.org
Sun May 4 00:48:32 UTC 2014


This is an automated email from the git hooks/post-receive script.

trash-guest pushed a commit to branch master
in repository gtk-vnc.

commit 66e3bf7db5a9c3ffb283935ba3ace7b5a737fa7f
Author: Laurent Léonard <laurent at open-minds.org>
Date:   Sun May 4 01:54:39 2014 +0200

    Imported Upstream version 0.5.3
---
 AUTHORS                  |    5 +
 ChangeLog                | 2102 ++++++++++++++++++++++++++++++++++++++++++++++
 INSTALL                  |    2 +-
 Makefile.am              |    2 +-
 Makefile.in              |  247 +++---
 NEWS                     |   23 +
 aclocal.m4               |  324 +++----
 build-aux/compile        |    9 +-
 build-aux/config.guess   |  182 ++--
 build-aux/config.sub     |   88 +-
 build-aux/depcomp        |  454 ++++++----
 build-aux/missing        |  405 ++++-----
 build-aux/mkinstalldirs  |  162 ----
 configure                |  134 ++-
 configure.ac             |    9 +-
 examples/Makefile.in     |  163 ++--
 examples/gvncviewer.c    |  105 ++-
 gtk-vnc.spec             |   13 +-
 gtk-vnc.spec.in          |   11 +-
 po/LINGUAS               |    1 +
 po/tg.po                 |   31 +
 src/Makefile.in          |  152 ++--
 src/coroutine_ucontext.c |    6 +-
 src/libgvnc_sym.version  |    1 +
 src/vncconnection.c      |  128 ++-
 src/vncconnection.h      |   10 +-
 src/vncdisplay.c         |   73 +-
 tools/Makefile.in        |  181 ++--
 vapi/Makefile.in         |   92 +-
 29 files changed, 3794 insertions(+), 1321 deletions(-)

diff --git a/AUTHORS b/AUTHORS
index 0535a10..76bbf19 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -23,6 +23,7 @@ Andika Triwidada <andika at gmail.com>
 Andre Klapper <a9016009 at gmx.de>
 Anthony Liguori <anthony at codemonkey.ws>
 António Lima <amrlima at gmail.com>
+Artem Rusanov <artem.rusanov at gmail.com>
 Atsushi SAKAI <sakaia at jp.fujitsu.com>
 Bruce Cowan <bcowan at fastmail.co.uk>
 Carles Ferrando <carles.ferrando at gmail.com>
@@ -33,7 +34,9 @@ Cole Robinson <crobinso at redhat.com>
 Daniel Korostil <ted.korostiled at gmail.com>
 Daniel Nylander <po at danielnylander.se>
 Daniel P. Berrange <dan at berrange.com>
+Doug Goldstein <cardoe at cardoe.com>
 Emilio Pozuelo Monfort <pochu27 at gmail.com>
+Enrico Nicoletto <enriconlto at src.gnome.org>
 Fabiano Fidêncio <fabiano at fidencio.org>
 Fran Diéguez <fran.dieguez at glug.es>
 Gabor Kelemen <kelemeng at gnome.hu>
@@ -52,6 +55,7 @@ Kenneth Nielsen <k.nielsen81 at gmail.com>
 Kjartan Maraas <kmaraas at gnome.org>
 Kris Thomsen <lakristho at gmail.com>
 Kristjan SCHMIDT <kristjan.schmidt at googlemail.com>
+Lei Li <lilei at linux.vnet.ibm.com>
 Leonid Kanter <leon at asplinux.ru>
 Luca Ferretti <elle.uca at libero.it>
 Lucian Adrian Grijincu <lucian.grijincu at gmail.com>
@@ -82,6 +86,7 @@ Stefano Stabellini <stefano.stabellini at eu.citrix.com>
 Steven Carr <Steven.Carr at scaa-usa.com>
 Sébastien Granjoux <seb.sfo at free.fr>
 Takeshi AIHANA <takeshi.aihana at gmail.com>
+Victor Ibragimov <victor.ibragimov at gmail.com>
 Yaron Shahrabani <sh.yaron at gmail.com>
 Zeeshan Ali (Khattak) <zeeshanak at gnome.org>
 anthony at rhesus <anthony at codemonkey.ws>
diff --git a/ChangeLog b/ChangeLog
index e69de29..cf6b7fa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -0,0 +1,2102 @@
+2013-09-18  Daniel P. Berrange  <berrange at redhat.com>
+
+	Update for 0.5.3 release
+
+	Fix generation of ChangeLog with VPATH build
+
+	Remove trailing whitespace
+
+	Only put examples in gtk3 based devel RPM
+	The example programs which use introspection are only compatible
+	with GTK3, so should be in gtk-vnc2-devel rather than gtk-vnc-devel
+
+	Remove execute permission from example programs in RPM
+	Avoid getting pointless RPM deps by removing the execute
+	permission from the example programs.
+
+	Add explicit dep on libgcrypt-devel RPM
+	gnutls-devel no longer pulls in libgcrypt-devel since the
+	switch to use nettle.
+
+2013-09-17  Daniel P. Berrange  <berrange at redhat.com>
+
+	Block all accelerators when grabbing keyboard
+	Prevent any global accelerators from activating in the
+	gvncviewer demo program when keyboard grab is active
+
+	  https://bugzilla.gnome.org/show_bug.cgi?id=594571
+
+	Don't ungrab pointer on leave-notify events
+	If we ungrab the pointer on leave-notify events, this breaks
+	the automatic grabs when a button is pressed in absolute pointer.
+	A symptom of this is that if you press to start highlighting text
+	in a gedit window in a server, and move the mouse outside the VNC
+	widget and release the button, the server will never see the mouse
+	up event. We must preserve grabs upon button press so that the
+	VNC server always sees the eventual release events.
+
+	https://bugzilla.gnome.org/show_bug.cgi?id=664567
+
+	Don't drop mouse events that are out of bounds
+	In absolute mode, if the mouse cursor goes outside the bounds
+	of the window, we drop the motion event entirely. This is bad
+	because only one of the co-ordinates may be out of bounds, and
+	the server still wants to see movement in the other axis. Instead
+	of dropping the events, just clamp co-ordinates to the boundary.
+
+2013-09-16  Doug Goldstein  <cardoe at cardoe.com>
+
+	Fix typo in NO_UNDEFINED_FLAGS name
+	Fix typo in the configuration of the NO_UNDEFINED_FLAGS name for Cygwin.
+
+	test for --no-undefined linker flag
+	Currently the code assumes that all non-Windows like platforms have a
+	linker that supports --no-undefined, however llvm based compilers do not
+	support this on Linux or Mac OS X, so instead test for it and only
+	use if it is available.
+
+2013-09-16  Daniel P. Berrange  <berrange at redhat.com>
+
+	Reset 'blocking' flag after I/O wait
+	If the 'vnc_connection_read_wire' goes into an I/O wait
+	due to blocking I/O, the 'blocking' flag gets set to
+	true. Upon returning from the wait, it jumps back to
+	the start of the function, but does not reset the 'blocking'
+	flag to false. If the I/O attempt succeeds, this doesn't
+	matter, but if it fails for an error reason, this gets
+	mistakenly treated as blocking I/O again.
+
+	This is seen most often when the remote server drops the
+	connection. If the client was blocking on I/O at this
+	time, it could get into a potentially infinite loop.
+
+	  https://bugzilla.gnome.org/show_bug.cgi?id=704098
+
+2013-09-13  Daniel P. Berrange  <berrange at redhat.com>
+
+	Only trigger grab sequence upon release
+	GTK-VNC uses the keyboard shortcut ctrl+alt to toggle inside/outside
+	the VM (aka release pointer). Now Gnome uses ctrl+alt+arrow_key to
+	switch virtual desktops. So these two shortcuts collide and gtk-vnc
+	will grab the key presses as soon as ctrl+alt is pressed and toogle
+	inside/outside the VM, which makes switching desktops impossible.
+
+	The solution is to only trigger the grab sequence when the user
+	releases the key. So if they press Ctrl+alt and then release it,
+	we trigger, but if they press Ctrl+alt+left-arrow we don't trigger
+
+	https://bugzilla.gnome.org/show_bug.cgi?id=685257
+
+2013-09-13  Artem Rusanov  <artem.rusanov at gmail.com>
+
+	Make handling of ZRLE encoding more efficient
+	Avoid memmove() on the uncompressed data buffer when dealing
+	with ZRLE encoding. Instead just track what offset we've read
+	upto.
+
+2013-09-13  Daniel P. Berrange  <berrange at redhat.com>
+
+	Free coroutine stack when releasing coroutine
+	The coroutine_init function mmap's a stack for the
+	ucontext coroutine, but nothing ever munmaps it.
+
+	Abort if mmap of coroutine stack fails
+	If we fail to mmap the stack, abort the processs rather
+	than returning an error. This is standard practice in
+	glib apps, and the caller was not checking the
+	coroutine_init() return code leading to memory corruption.
+
+2013-05-20  Marc-André Lureau  <marcandre.lureau at gmail.com>
+
+	connection: timeout connect() after 10s
+	It can take a minute or so before the connect() fails. Add an explicit
+	shorter timeout of 10s.
+
+	https://bugzilla.gnome.org/show_bug.cgi?id=700240
+
+2013-05-20  Lei Li  <lilei at linux.vnet.ibm.com>
+
+	Add support for LED state extension to gvnc
+	Support the QEMU LED state extension
+
+2013-03-19  Enrico Nicoletto  <enriconlto at src.gnome.org>
+
+	Added Tajik language on LINGUAS
+
+2013-03-19  Victor Ibragimov  <victor.ibragimov at gmail.com>
+
+	Updated Tajik translation
+
+2013-02-22  Daniel P. Berrange  <berrange at redhat.com>
+
+	Update for 0.5.2 release
+
+	Delete browser plugin
+	The plugin code has been unmaintained for years and almost
+	certainly has security problems. A pure HTML5 solution like
+	noVNC is a far better approach to browser support for VNC.
+
+	Update RPM specs for F19 changes
+
+	Add perl example to RPM spec
+
+	Add python example using introspection
+
+	Add vnc_grab_sequence_get_nth
+	To allow introspected bindings to get access to keysyms, add
+	a vnc_grab_sequence_get_nth method
+
+	Rename gvncviewer.py to gvncviewer-bindings.py
+
+	Convert VncConnectionCredential to VncDisplayCredential
+	When forwarding the auth signal from VncConnection to consumers
+	of VncDisplay, the VncConnectionCredential enums must be turned
+	into VncDisplayCredential enums
+
+2013-01-31  Daniel P. Berrange  <berrange at redhat.com>
+
+	Fix conditionals in gvncviewer example
+
+	Auto-generate AUTHORS file from GIT logs
+	Rather than trying to manually keep track of authors,
+	just auto-generate the list from GIT logs
+
+	Add missing 'default' case to switch statement
+
+	Disable deprecation warnings
+	Glib deprecated GValueArray in favour of GArry
+
+	  gvncviewer.c:450:9: warning: ‘g_value_array_get_nth’ is deprecated (declared at /usr/include/glib-2.0/gobject/gvaluearray.h:65): Use 'g_array_index' instead [-Wdeprecated-declarations]
+
+	Unfortunately these types are not ABI compatible. eg
+	compare the field orders
+
+	  struct GValueArray {
+	    guint   n_values;
+	    GValue *values;
+	  };
+
+	vs
+
+	  struct GArray {
+	    gchar *data;
+	    guint len;
+	  };
+
+	So the replacement can't be used without a change in API
+	and ABI. This is unacceptable, so the deprecation warniings
+	must be disabled :-(
+
+	Avoid crash with unsupported audio formats
+	Currently if the VNC server sends an unsupported audio format,
+	we skip creating the pulse audio instance. When we later receive
+	audio data from QEMU we crash on this NULL instance. Instead we
+	should simply discard the audio data. Also log a warning if we
+	get a format we can't supported
+
+	https://bugzilla.gnome.org/show_bug.cgi?id=679283
+
+2013-01-31  Cole Robinson  <crobinso at redhat.com>
+
+	Fix enabling pulseaudio bits in gvncviewer
+	The gvncviewer.c file used a HAVE_PULSEAUDIO conditional,
+	but this was only defined for make and not in config.h
+
+	Add introspection annotation for vnc_display_send_keys
+	The vnc_display_send_keys method signature is too complex
+	to be interpreted correctly without some annotations.
+
+	https://bugzilla.gnome.org/show_bug.cgi?id=691821
+
+2012-12-07  Daniel P. Berrange  <berrange at redhat.com>
+
+	Avoid use of uninitialized variables in password echo prompt
+
+	Remove bogus check for 'conn' being null in vnc_connection_is_open
+
+	Fix size check on available write buffer space
+	The vnc_connection_write() function did not consider the current
+	write offset when calculating how much space was available in
+	the write buffer. This could lead to an array overrun.
+
+	Avoid array overrun setting up blt24 function
+	If a VNC colourmap mode was enabled, we would attempt to access
+	beyond the end of the blt24 function table. There are no blt
+	functions that can work for this mode, so just stub out the
+	array with NULL, and add a later check for NULL.
+
+	Fix missing check for OOM in python binding by s/malloc/g_new0/
+
+	Fix NULL dereference in debug logging on socket read error
+
+	Replace strncpy with memcpy in VNC password code
+	Using strncpy for the VNC key makes coverity worried about
+	unterminated strings. Switch to use memcpy to keep it
+	happier
+
+2012-12-04  Marc-André Lureau  <marcandre.lureau at gmail.com>
+
+	win32: fix quote key handling
+	Fix keymaps to correctly handle the quote key.
+
+	https://bugzilla.gnome.org/show_bug.cgi?id=686177
+
+	Fix invalid array size
+	Avoid further out of bound access.
+	Also simplify other code using G_N_ELEMENTS.
+
+	https://bugzilla.gnome.org/show_bug.cgi?id=686178
+
+2012-12-04  Christophe Fergeau  <cfergeau at redhat.com>
+
+	spec: Tarballs are now in .xz format
+	https://bugzilla.gnome.org/show_bug.cgi?id=689101
+
+	spec: Use %global instead of %define
+	https://bugzilla.gnome.org/show_bug.cgi?id=689101
+
+	spec: Fix GTK2 typo in description of gtk3 package
+	https://bugzilla.gnome.org/show_bug.cgi?id=689101
+
+2012-12-04  Adam Jackson  <ajax at redhat.com>
+
+	cairo: Fix framebuffer setup on big-endian
+	Without this, big-endian machines would over-swizzle.
+
+2012-11-09  Yaron Shahrabani  <sh.yaron at gmail.com>
+
+	Added he.
+
+	Updated Hebrew translation.
+
+2012-10-17  Мирослав Николић  <miroslavnikolic at rocketmail.com>
+
+	Added Serbian translation
+
+2012-09-04  Piotr Drąg  <piotrdrag at gmail.com>
+
+	Updated Polish translation
+
+2012-09-04  Daniel P. Berrange  <berrange at redhat.com>
+
+	Call ldconfig from gvnc/gvncpulse/gtk-vnc2 %post/%postun
+
+	Add missing deps on gvnc package from gtk-vnc/gtk-vnc2
+
+2012-07-12  Daniel P. Berrange  <berrange at redhat.com>
+
+	Fix check for Text::CSV in configure.ac
+
+2012-07-09  Daniel P. Berrange  <berrange at redhat.com>
+
+	Updates for 0.5.1 release
+
+	Add support for connecting to GSocketAddress instances
+	To improve UNIX domain socket support, add the ability to open
+	a GSocketAddress instance. Pass the 'hostname' with the addr
+	for the purposes of SASL/TLS hostname verification. Also add
+	another method for opening a FD which accepts a hostname, again
+	for SASL/TLS hostname verification when using a tunnelled
+	socket
+
+2012-07-02  Daniel P. Berrange  <berrange at redhat.com>
+
+	Remove use of hardcoded constants
+	Currently code which sends/receives client/server messages uses
+	hardcoded constants for message types. Replace these with a bunch
+	of enums for clarity
+
+	Fix mistaken use of g_object_unref instead of gdk_cursor_unref
+
+2012-06-27  Daniel P. Berrange  <berrange at redhat.com>
+
+	Add Rūdolfs Mazurs to AUTHORS
+
+2012-06-27  Rūdolfs Mazurs  <rudolfsm at src.gnome.org>
+
+	Added Latvian translation
+
+2012-06-21  Christophe Fergeau  <cfergeau at redhat.com>
+
+	build: allow building with newer glibc-headers and -O0
+	Commit log and autoconf snippet written by Eric Blake for libvirt.
+
+	glibc 2.15 (on Fedora 17) coupled with explicit disabling of
+	optimization during development dies a painful death:
+
+	In file included from /usr/include/limits.h:27:0,
+	                 from /usr/lib/gcc/x86_64-redhat-linux/4.7.0/include/limits.h:169,.
+	                 from /usr/lib/gcc/x86_64-redhat-linux/4.7.0/include/syslimits.h:7,
+	                 from /usr/lib/gcc/x86_64-redhat-linux/4.7.0/include/limits.h:34,
+	                 from util/bitmap.c:26:
+	/usr/include/features.h:314:4: error: #warning _FORTIFY_SOURCE requires compiling with optimization (-O) [-Werror=cpp]
+	cc1: all warnings being treated as errors
+
+	Work around this by only conditionally defining _FORTIFY_SOURCE,
+	in the case where glibc can actually use it.  The trick is using
+	AH_VERBATIM instead of AC_DEFINE.
+
+	* m4/gtk-vnc-warnings.m4 (LIBOSINFO_COMPILE_WARNINGS): Squelch
+	_FORTIFY_SOURCE when needed to avoid glibc #warnings.
+
+	https://bugzilla.gnome.org/show_bug.cgi?id=678014
+
+2012-06-21  Alban Browaeys  <prahal at yahoo.com>
+
+	gir: link against builddir libgvnc (pulse and gtkvnc)
+	Linking against builddir gnv fixes GVncPulse generation.
+	Done also against GtkVnc for completness.
+
+2012-06-21  Daniel P. Berrange  <berrange at redhat.com>
+
+	Add compat macro for g_mutex_new|free with glib >= 2.31
+
+	Fix triplet for mingw64 64-bit builds in autobuild.sh
+
+2012-06-20  Daniel P. Berrange  <berrange at redhat.com>
+
+	Add Andika Triwidada to AUTHORS
+
+2012-06-15  Andika Triwidada  <andika at gmail.com>
+
+	Added Indonesian translation
+
+2012-05-04  Daniel P. Berrange  <berrange at redhat.com>
+
+	Avoid some deprecation warnings from GTK3 about device grabs
+	Temporary workaround to avoid deprecation warnings from GTK3
+	about device grabs. Currently this just emulates existing
+	behaviour of grabbing all devices, but in the future should
+	be fine tuned to only grab specific devices
+
+	Fix constness wrt g_getenv
+
+	Switch to use mingw64 toolchain for cross-compiles
+
+2012-04-27  Daniel P. Berrange  <berrange at redhat.com>
+
+	Fix introspection of key grab APIs
+
+	Update specfile for RHEL-7
+
+2012-04-26  Daniel P. Berrange  <berrange at redhat.com>
+
+	Replace getenv/setenv with g_getenv/g_setenv for Win32 portability
+
+2012-04-25  Daniel P. Berrange  <berrange at redhat.com>
+
+	Ensure debugging works on GLib >= 2.32
+
+	Use g_object_unref instead of gdk_pixbuf_unref
+
+2012-04-06  Alexandre Rostovtsev  <tetromino at gentoo.org>
+
+	configure: make pulseaudio detection non-automagic
+	This is to allow building gtk-vnc on a system with pulseaudio and then
+	deploying on a system without pulseaudio.
+
+	https://bugzilla.gnome.org/show_bug.cgi?id=673570
+
+2012-04-05  Daniel P. Berrange  <berrange at redhat.com>
+
+	Add Fabiano Fidêncio to AUTHORS
+
+2012-03-29  Fabiano Fidêncio  <fabiano at fidencio.org>
+
+	Add check for Perl::Text::CSV if building from GIT
+
+2012-03-19  Daniel P. Berrange  <berrange at redhat.com>
+
+	Add Sasi Bhushan Boddepalli <sasi at swecha.net> to AUTHORS
+
+2012-03-16  Sasi Bhushan Boddepalli  <sasi at swecha.net>
+
+	Updated Telugu Translations
+
+2012-03-16  Sasi Bhushan  <sasi at swecha.net>
+
+	Added new language Telugu translation
+
+2012-03-13  Daniel P. Berrange  <berrange at redhat.com>
+
+	Add Alexandre Rostovtsev to AUTHORS
+
+2012-03-13  Alexandre Rostovtsev  <tetromino at gentoo.org>
+
+	tools/gvnccapture: unbreak pod syntax
+	For pod, the presence or absence of leading whitespace is significant.
+
+	https://bugzilla.gnome.org/show_bug.cgi?id=667943
+
+2012-03-13  Daniel P. Berrange  <berrange at redhat.com>
+
+	Ensure syntax-check files are included in dist
+
+	Change the way header files are handled by automake
+	Switch over to using the official _HEADERS target against the
+	library, instead of doing it manually. This helps automake
+	with VPATH builds
+
+2012-02-17  Daniel P. Berrange  <berrange at redhat.com>
+
+	Add GVNCPULSE_VERSION_FILE to BUILT_SOURCES
+
+	Remove duplicated AC_SUBST var in configure.ac
+
+2012-02-10  Daniel P. Berrange  <berrange at redhat.com>
+
+	Fix autobuild flags
+
+	Replace #if HAVE_SASL with #ifdef HAVE_SASL
+
+	Import GNULIBs GCC warning module
+	Replace hand-written warning checks with GNULIB module
+
+	Misc code fixes to vncconnectionc.
+	 - Add default cases for switch statements
+	 - Replace #if with #ifdef for DEBUG check
+	 - Reduce excessive stack usage
+
+	Update to use modern function decl style
+
+2011-12-21  Daniel P. Berrange  <berrange at redhat.com>
+
+	Update for 0.5.0 release
+
+2011-12-21  Marc-André Lureau  <marcandre.lureau at gmail.com>
+
+	windows: fix broken left shift
+	On Windows, the received key when pressing left shift is VK_SHIFT 0x10
+	Patch from spice-gtk
+
+	https://bugzilla.gnome.org/show_bug.cgi?id=666171
+
+2011-12-21  Christophe Fergeau  <cfergeau at redhat.com>
+
+	properly free xkbDesk
+	valgrind detects a memory leak if it's not freed using
+	xkbFreeKeyboard.
+
+2011-12-21  Daniel P. Berrange  <berrange at redhat.com>
+
+	Fix some more indentation mistakes
+
+2011-12-15  Daniel P. Berrange  <berrange at redhat.com>
+
+	Update AUTHORS file
+
+	Add support for '--system' arg to autogen.sh
+
+	Add --pkg statements for all external libs needed in build
+	Ensure g-ir-scanner adds -I and -L flags for all external
+	libraries required to build
+
+2011-12-13  Christophe Fergeau  <cfergeau at redhat.com>
+
+	Include locale.h in gvnccapture.c
+	It uses setlocale and LC_ALL, without this header compilation fails
+	on RHEL 6.2
+
+	More fixing for gir generation
+	I missed the new GVncPulse.gir file in the previous fix
+
+	Fix GIR generation
+	Overriding PKG_CONFIG_PATH when generating GtkVnc-2.0.gir is
+	wrong since this means that if glib/... is installed in a prefix that
+	is not one of the default pkg-config paths, then it won't be found.
+	PKG_CONFIG_PATH is overridden so that g-ir-scanner can find GVnc-1.0.gir
+	in the build tree. Since g-ir-scanner provides --include-uninstalled
+	for that purpose, use that instead.
+
+2011-12-11  Daniel P. Berrange  <berrange at redhat.com>
+
+	Update AUTHORS file
+
+2011-12-11  Daniel Korostil  <ted.korostiled at gmail.com>
+
+	Added uk translation
+
+2011-12-09  Daniel P. Berrange  <berrange at redhat.com>
+
+	Import GNULIB framework for checking code style / rules
+	Add a new 'make syntax-check' rule which validates some
+	aspects of coding style. This is imported from GNULIB
+
+	Remove trailing whitespace at end of lines
+
+	Ensure <config.h> is always the first header included
+
+	Remove redundant 'const' annotations
+
+	use "test C1 && test C2", not "test C1 -a C2" etc
+
+	Remove trailing blank lines from COPYING.LIB
+
+	Remove use of @FOO@ syntax from Makefile.am in favour of $(FOO)
+
+	Ensure vars are fully quoted in configure.ac
+
+	Fix mistakes in copyright header
+
+	Update authors file & add a mailmap for non-primary addrs
+
+	Ensure gvnccapture calls bindtextdomain to setup localization
+
+	Remove useless if before free
+
+	Change debug function into a null macro
+
+	Death to tabs
+	Remove all tabs, change indentation level to 4 spaces. Add
+	emacs magic to files which were missing it. Reindent all
+	files with new rules
+
+	Batch up incoming audio samples for upto 100ms
+	The length of samples received from the guest can be very
+	small (as little as 1 sample). If this is dispatched directly
+	to the audio sink this can cause excessive CPU consumption
+	and context switching. Batch up incoming data for upto 100ms
+	until dispatching it
+
+	Convert connection over to use audio objects
+	* src/vncconnection.c, src/vncconnection.h: Convert to use
+	  VncAudio, VncAudioFormat & VncAudioSample objects
+	* examples/Makefile.am, examples/gvncviewer.c: Convert to
+	  use new API & pulse audio object impl
+	* src/vncmarshal.txt: Remove unused marshaller
+
+	Make decoding of audio extension more robust
+	Add checks for unknown QEMU messages and crazy sized audio
+	data packets
+
+	Remove all audio APIs from VncDisplay since we expose the connection
+	Now that there is a vnc_display_get_connection() method there is
+	no need to duplicate all the audio APIs & signals in the VncDisplay
+	class
+
+	Fix compiler warning in gvnccapture.c
+	Recent GCC warn about assignments to variables which are then
+	not used.
+
+	Introduce pulse audio bridge for GVnc
+	Introduce a new library libgvncpulse-1.0.so which provides an
+	implementation of VncAudio that uses Pulse Audio for output
+
+	* Makefile.am, gvncpulse-1.0.pc.in: Add pkgconfig file for
+	  libgvncpulse
+	* gtk-vnc.spec.in: Add gvncpulse & gvncpulse-devel sub-RPMS
+	* src/Makefile.am, src/gvncpulse.h, src/libgvncpulse_sym.version
+	  Add gvncpulse-1.0 library
+	* src/vncaudiopulse.c, src/vncaudiopulse.h: Pulse audio
+	  impl of VncAudio
+	* vapi/Makefile.am: Build vala binding for pulse audio
+
+	Introduce a basic impl of audio handler
+	Introduce a basic implementation of the audio handler which
+	emits a signal for each method. This enables apps to support
+	audio playback without needing to create subclasses. It also
+	isolates subclasses from extensions in the interface
+
+	* src/Makefile.am, src/libgvnc_sym.version,
+	  src/vncbaseaudio.c, src/vncbaseaudio.h: Introduce basic
+	  audio handler
+
+	Introduce an interface for handling audio data
+	Define a new interface VncAudio which is used to handle playback
+	of audio data
+
+	* src/Makefile.am, src/libgvnc_sym.version,
+	  src/vncaudio.c, src/vncaudio.h: Add interface for handling
+	  audio data
+
+	Introduce a basic data type for audio samples
+	To avoid having to pass around all the parameters individually,
+	introduce a boxed data type for audio samples
+
+	* src/Makefile.am, src/libgvnc_sym.version,
+	  src/vncaudiosample.c, src/vncaudiosample.h: Boxed type for
+	  audio samples
+
+	Introduce a basic data type for audio formats
+	To avoid having to pass around all the parameters individually,
+	introduce a boxed data type for audio formats
+
+	* src/Makefile.am, src/libgvnc_sym.version,
+	  src/vncaudioformat.c, src/vncaudioformat.h: Boxed type for
+	  audio formats
+
+2011-12-09  Steven Carr  <Steven.Carr at scaa-usa.com>
+
+	Introduce support for the VNC audio tunnel extension
+	Add support for handling VNC audio extension and a pulse
+	audio implementation to the gvncviewer.c
+
+	* src/vncconnection.c, src/vncconnection.h: Handle VNC
+	  audio extension
+	* src/vncdisplay.c, src/vncdisplay.h: Passthrough audio
+	  control to connection
+	* src/vncmarshal.txt: New signal types
+	* examples/gvncviewer.c, examples/Makefile.am: Pulse
+	  audio impl
+	* configure.ac: Check for pulse audio
+
+2011-12-09  Daniel P. Berrange  <berrange at redhat.com>
+
+	Add a 'connection' property to VncDisplay class
+	Allow apps access to the VncConnection behind the VncDisplay
+	instance, by adding a property and a getter API
+
+	* src/vncdisplay.c: Add a 'connection' property to allow
+	  apps to get the VncConnection object
+
+	Adapt to avoid deprecated gnutls functions
+	Switch to using gnutls_priority_set_direct on newer GNUTLS
+
+2011-11-18  Algimantas Margevičius  <gymka at mail.ru>
+
+	Added Lithuanian translation
+
+2011-11-10  Daniel P. Berrange  <berrange at redhat.com>
+
+	Misc RPM specfile fixes
+
+	Add Perl example program using GTK3
+
+	Update NEWS for 0.4.4 release
+
+2011-11-04  Daniel P. Berrange  <berrange at redhat.com>
+
+	Update automated build to test both GTK2 and GTK3
+
+	Add rules for building GTK3 library on mingw32
+
+	Fix GTK3 build on mingw32
+	The mingw32 linker does not like .def files with symbols which
+	do not exist. Filter out the vnc_image_framebuffer* symbols.
+	Also ensure the python module generated files are not included
+	in the dist
+
+2011-11-02  Marc-André Lureau  <marcandre.lureau at gmail.com>
+
+	Fix introspection of vnc_display_get_pixbuf()
+
+2011-10-31  Daniel P. Berrange  <berrange at redhat.com>
+
+	Add vala files to RPM spec
+
+2011-10-28  Zeeshan Ali (Khattak)  <zeeshanak at gnome.org>
+
+	Specify location of pkg-config files to gir scanner
+	Fixes fresh build (when gtk-vnc isn't already installed).
+
+	Specify GIR directory to vapigen
+
+	Disable VAPI generation for gtk+ 2.0
+	Disable vala checks and binding generation by default when building
+	against gtk 2.0.
+
+2011-10-26  Zeeshan Ali (Khattak)  <zeeshanak at gnome.org>
+
+	Post release version bump
+	This is needed so apps depending on git master can require the correct
+	version at 'configure' time.
+
+2011-10-26  Marc-André Lureau  <marcandre.lureau at gmail.com>
+
+	Add vapi bindings generation
+	https://bugzilla.gnome.org/show_bug.cgi?id=662708
+
+2011-09-24  Stanislav Petrek  <stanislav.petrek at gmail.com>
+
+	Added Slovak translation
+
+2011-07-30  Seong-ho, Cho  <darkcircle.0426 at gmail.com>
+
+	Add Korean translation
+
+2011-07-12  Daniel P. Berrange  <berrange at redhat.com>
+
+	Fix leak of string list when parsing grab sequence string
+
+2011-07-11  Guido Günther  <agx at sigxcpu.org>
+
+	Explicitly link gvncviewer against GTK + libgvnc
+
+2011-07-01  Marc-André Lureau  <marcandre.lureau at redhat.com>
+
+	gtk maps LAlt & LCtrl to Alt and Ctrl keycode, but they are missing from keymaps.csv
+
+2011-06-04  Kristjan SCHMIDT  <kristjan.schmidt at googlemail.com>
+
+	Add Esperanto translation
+
+2011-05-05  Muhammet Kara  <muhammet.k at gmail.com>
+
+	Added Turkish translation
+
+2011-04-14  Daniel P. Berrange  <berrange at redhat.com>
+
+	Fix missing OS-X keymapping for letter 'A'
+	The keymap-gen.pl script was not correctly distinguishing
+	keycodes with a value of '0', from undefined keycodes. All
+	were skipped. This meant that the mapping for OS-X ANSI_A
+	key was lost (since it has value 0).
+
+	For similar reasons the XQuartz mapping for the letter A
+	was also lost.
+
+	* src/keymap-gen.pl: Fix handling of 0 vs undef for keycodes
+	* src/keymaps.csv: Remove bogus 0x0 entry in OS-X keymap
+
+	Tweak logging messages for TLS auth sub-types
+
+2011-02-18  Daniel P. Berrange  <berrange at redhat.com>
+
+	Update for 0.4.3 release
+	* NEWS: List of changes
+	* README: Remove note about GTK3 being experimental
+	* configure.ac: Update version & GTK3 required version
+	* gtk-vnc.spec.in: Remove bogus changelog
+
+	Remove some unused variables in VncConnection
+	* src/vncconnection.c: Remove unused vars
+
+2011-01-28  Daniel P. Berrange  <berrange at redhat.com>
+
+	Make pointer warp check more robust
+	The pointer warp code checks whether the local cursor
+	is hitting a boundary == 0, ==width, or ==height. This
+	is slightly too strict, it should check <= 0, >= width
+	or >= height
+
+	* src/vncdisplay.c: Make boundary check more robust
+
+	Fix warning about unused 'dpy' variable in keymap code
+	In GTK2 paths, GDK_IS_*_DISPLAY(dpy) evaluated to '1'
+	which meant 'dpy' could be unused. Change it to eval
+	to 'dpy == dpy' to trick compiler into thinking the
+	variable is in use.
+
+	* src/vncdisplaykeymap.c: Fix warning of unused variable
+
+2011-01-14  George Stefanakis  <george.stefanakis at gmail.com>
+
+	Updated Greek translation
+
+2011-01-13  Sébastien Granjoux  <seb.sfo at free.fr>
+
+	Fix setup of 'shared flag' when opening connection
+	The VncDisplay class forgot to pass the 'shared flag' onto
+	the VncConnection class when establishing a connection
+
+2011-01-13  Daniel P. Berrange  <berrange at redhat.com>
+
+	Refactor keymap handling to cope with multiple GDK backends
+	In GTK3 it is possible to have multiple GDK backends present.
+	The vncdisplaykeymap code needs a minor refactoring to cope
+	with this enhancement. The refactoring also trivially maintains
+	GTK2 compat
+
+2011-01-05  Akom Chotiphantawanon  <knight2000 at gmail.com>
+
+	Added Thai translation.
+
+2010-12-14  Daniel P. Berrange  <berrange at redhat.com>
+
+	Fix leak of GSource objects which causes performance problems
+	The GLib event loop scales poorly as the number of GSource objects
+	increases. A missing unref on the GSource objects used in the VNC
+	connection meant that many unused instances accumulated, slowing
+	down the event loop processing.
+
+	* src/vncconnection.c: Unref all GSource objects
+
+2010-12-09  Daniel P. Berrange  <berrange at redhat.com>
+
+	Adapt to avoid further Gtk3 changes
+	More gdk_drawable calls have gone away in Gtk3. Adapt code to avoid
+	needing to use them, by calling gtk_widget APIs instead.
+
+2010-11-29  Daniel P. Berrange  <berrange at redhat.com>
+
+	Re-introduce a server side Pixmap to cache framebuffer
+	Despite use of clipping during drawing, rendering directly
+	from the client side cairo image, to the window incurred
+	a serious performance penalty for some users' X servers.
+	Re-introduce a server side copy of the VNC desktop using
+	a cairo surface, backed by an X Pixmap. This uses cairo
+	APIs directly, avoiding any need for GdkPixmap.
+
+	Remove check for Text::CSV
+	Revert the check for Text::CSV added in
+
+	  753ddcb203fd9ad26829a065fd4d47c82773e849
+
+	Since the keymap files are now included in EXTRA_DIST, there
+	is no requirement fo Text::CSV at end user build time. Only
+	maintainers required the Text::CSV file when generating a
+	new dist.
+
+2010-11-29  Daniel P. Berrange  <dan at berrange.com>
+
+	Fix framebuffer update boundary check
+	Framebuffer boundary checks need to take into account offset,
+	in addition to width/height
+
+	* src/vncconnection.c: Fix boundary check
+
+	Avoid crash in TLS cleanup code on shutdown
+	The gnutls_bye() method may try to send data on the socket todo
+	graceful TLS shutdown. The priv->sock variable is possibly
+	already NULL at this point if the close was triggered via the
+	vnc_connection_shutdown() method. Change the latter so that
+	it only calls g_socket_close, not actually free'ing the
+	priv->sock object immediately. Also put sanity check code in
+	the TLS push/pull functions to catch future bugs in this area
+
+	Distribute built keymap files
+	Avoid the need for end users to have the Perl Text::CSV module
+	installed, by including the pre-generated keymap source files
+	in the dist.
+
+	* gtk-vnc.spec.in: Remove dep on perl(Text::CSV)
+	* src/Makefile.am: Include keymaps in dist
+
+	Avoid crash in motion event & vnc_display_get_pixbuf
+	If a mouse event occurs before a connection completes setup
+	priv->fb will be NULL and a crash can occur. Likewise if
+	vnc_display_get_pixbuf() is called before priv->fb is set,
+	then a crash occurs. Add checks for NULL in both cases
+
+2010-11-26  Jonh Wendell  <jwendell at gnome.org>
+
+	check for Text::CVS perl module in configure. closes #634621
+
+2010-11-05  Daniel P. Berrange  <berrange at redhat.com>
+
+	Update NEWS/README/configure.ac  for 0.4.2 release
+	* NEWS: List of new features/bugs fixed
+	* README: Expand on GTK3 notes
+	* configure.ac: Increase version number
+
+2010-11-03  Daniel P. Berrange  <berrange at redhat.com>
+
+	Fix data type of arg to cut-text signal in VncConnection
+	The vnc-server-cut-text signal is marshalled by
+
+	  g_cclosure_marshal_VOID__STRING
+
+	so its argument must be a 'const char *', not a 'GString *'
+	datatype.
+
+	* src/vncconnection.c: Fix data type for cut-text signal arg
+
+2010-10-29  Carles Ferrando  <carles.ferrando at gmail.com>
+
+	Added Catalan (Valencian) translation
+
+2010-10-29  Kjartan Maraas  <kmaraas at gnome.org>
+
+	Add nb
+
+	Updated Norwegian bokmål translation.
+
+2010-10-28  Daniel P. Berrange  <berrange at redhat.com>
+
+	Enable building of a sub-RPM for gtk3
+	Allow a single RPM to build both gtk2 and gtk3 libraries
+
+	* gtk-vnc.spec.in: Add gtk-vnc2 sub-RPM for gtk3 binaries
+
+	Cope with building against newer gobject-introspection
+	Newer gobject-introspection wants --symbol-prefix and
+	--identifier-prefix instead of --strip-prefix. Test
+	for such a version and use the new style options if
+	appropriate
+
+	* configure.ac: Check for new gobject introspection
+	* src/Makefile.am: Adapt to g-ir-scanner flags
+
+	Fix rendering artifacts when running in scaling mode
+	The expose region was not large enough when running in scaling mode
+	resulting in horizontal & vertical line artifacts when moving
+	windows around on the virtual desktop. The previous fix used in
+	Gtk2 was not sufficient for Gtk3, so change the fix to be entirely
+	within the on_framebuffer_update handler
+
+	* src/vncdisplay.c: Hack to fix rendering artifacts
+
+	Add compat macro for GDK_DISPLAY
+	The GDK_DISPLAY macro is removed in Gtk3, add a compatibility
+	macro to allow build with Gtk2 and Gtk3
+
+	* src/vncdisplaykeymap.c: Add GDK_DISPLAY compat
+
+	Add compatability code for GDK symbolic keys
+	The GDK key macros were changed from GDK_ to GDK_KEY_ in GTK3.
+	Add some compatibility #ifdefs to allow the same macros to be
+	used on both Gtk2 and Gtk3.
+
+	* examples/gvncviewer.c: Add GDK_KEY compat
+	* src/vncdisplaykeymap.c: Add GDK_KEY compat
+
+2010-10-27  Daniel P. Berrange  <berrange at redhat.com>
+
+	Refactor drawing code to allow compatibility with Gtk3
+	In Gtk3, the expose_event is replaced with a 'draw' callback.
+	This is provided with a 'cairo_t' context that is already
+	configured with the clip region.
+
+	Split the current expose_event into two parts, the first
+	which creates a cairo_t based on the GdkEventExpose data,
+	and the second method which draws to that cairo_t. The
+	expose_event is conditionally disabled for Gtk3 builds,
+	just leaving the draw method which works on Gtk2 and Gtk3
+
+	* src/vncdisplay.c: Pull drawing code out of expose_event
+	  method and disable expose_event on Gtk3
+
+	Remove the server side framebuffer cached in GdkPixmap
+	For rendering efficiency a GdkPixmap was kept on the server
+	duplicating what was in the old GdkImage object on the client
+	side. The client was changed to use a cairo image surface.
+	This can easily be rendered straight to the window and does
+	not appear to have any performance degradation. Thus the
+	GdkPixmap can be eliminated, avoiding the extra memory usage
+	that entails
+
+	* src/vncdisplay.c: Remove the GdkPixmap copy of the framebuffer
+
+	Change cursor to use GDK_BLANK_CURSOR instead of a GdkPixmap
+	The GdkPixmap class has been removed in GTK3. Since Gtk 2.16
+	there is a standard GDK_BLANK_CURSOR which can replace their
+	usage and works across Gtk 2 and 3.
+
+	* src/vncdisplay.c: Use GDK_BLANK_CURSOR
+
+2010-10-25  Daniel P. Berrange  <berrange at redhat.com>
+
+	Clear out more fields when closing a vnc connection
+	Be more paranoid about reseting internal fields when closing
+	a VNC connection, to prevent surprises when reconnecting
+
+	* src/vncconnection.c: Clear out more fields when closing
+	  a connection
+
+	Add strict bounds checking on framebuffer updates
+	Some broken VNC servers send frame buffer updates which stray
+	outside the boundary of the desktop. This will lead to memory
+	corruption when rendering, so explicitly check for this and
+	drop the VNC connection.
+
+	* src/vncconnection.c: Add framebuffer update bounds checking
+
+2010-10-21  Michal Novotny  <minovotn at redhat.com>
+
+	Introduce vnc_util_get_version() functions to get version
+	this is the patch to allow user to get the GTK-VNC version using the
+	vnc_util_get_version() and vnc_util_get_version_string() functions.
+	Both the functions returns the version numbers based on the VERSION
+	definition as created by autotools. Also, in version 2 (previous
+	version) a new function called vnc_util_check_version() has been added
+	to check whether the version of gtk-vnc is equal or higher to version
+	requested. Function vnc_util_check_version() is defined as:
+
+	gboolean vnc_util_check_version(gint major, gint minor, gint micro);
+
+	The version of gtk-vnc is written in a "major.minor.micro" format
+	and since the version number didn't change once the package was
+	compiled version 3 is using VERSION_{MAJOR,MINOR,MICRO} constants
+	being parsed and set by configure itself rather then parsing it
+	at run-time.
+
+	Then there are 2 version functions. The difference between those
+	functions is that vnc_util_get_version() returns the gint value
+	based on bit flags that have to be converted to get the version
+	number in the string format. It's designed for further processing of
+	the major, minor and release versions.
+
+	If you want to get the version number only (e.g. to let the user
+	know the GTK-VNC version he/she is using) you can use the second
+	function called the vnc_util_get_version_string() which returns
+	the string representation, e.g. 0.4.1.
+
+	For the vnc_util_get_version() function the gint is being returned
+	with setting up appropriate bits. You can get the versions using
+	following formula:
+
+	ver = vnc_util_get_version();
+	major = (ver >> 24) & 0xff;
+	minor = (ver >> 16) & 0xff;
+	micro = (ver >> 8 ) & 0xff;
+
+	I think this patch could be useful for mainly for reason mentioned
+	above. To check whether the user has at least 0.4.1 version of
+	gtk-vnc using the vnc_util_check_version(0, 4, 1) is preferred.
+	The vnc_util_get_version() function is a low-level function that
+	could be useful to get the version number to be converted further.
+
+2010-09-17  Guido Günther  <agx at sigxcpu.org>
+
+	Don't close the socket before the coroutine shut down
+	The connection shutdown needs the socket intact:
+
+	7  0xb6d38cdf in vnc_connection_tls_push (transport=0x8d84108, data=0x8df33c0, len=229) at vncconnection.c:942
+	8  0xb6b30437 in ?? () from /usr/lib/libgnutls.so.26
+	9  0xb6b2d12c in _gnutls_send_int () from /usr/lib/libgnutls.so.26
+	10 0xb6b4d682 in gnutls_alert_send () from /usr/lib/libgnutls.so.26
+	11 0xb6b2d662 in gnutls_bye () from /usr/lib/libgnutls.so.26
+	12 0xb6d3a620 in vnc_connection_close (conn=0x8d84108) at vncconnection.c:4323
+
+	so close the socket after the coroutine shutdown. Otherwise it fills the
+	console with:
+
+	(gvncviewer:11056): GLib-GIO-CRITICAL **: g_socket_send: assertion `G_IS_SOCKET (socket) && buffer != NULL' failed
+
+	and gets stuck in an endless loop.
+
+2010-09-17  Daniel P. Berrange  <berrange at redhat.com>
+
+	Add missing keytable entry for KEY_KATAKANAHIRAGANA
+	* src/keymaps.csv: Add XT code for KEY_KATAKANAHIRAGANA
+
+	Fix auth subtype choosing logic in vncdisplay
+	The method for choosing auth subtypes was rather flawed. Rewrite
+	it to work correctly. Introduce an explicit list of vencrypt
+	subtypes, since these are distinct from main subtypes. Improve
+	debug logging in auth choice code.
+
+	* src/vncdisplay.c: Fix auth type choice
+	* src/vncconnection.c: Improve auth debugging & invoke correct
+	  signal for auth subtype choice
+
+2010-09-08  Guido Günther  <agx at sigxcpu.org>
+
+	Simplify logic in host open code
+	The second else clause checks for conn_error != NULL twice and since we
+	don't use it to determine the return value we can clear it
+	unconditionally.
+
+	* src/vncconnection.c: Simplify logic in vnc_connection_open_host_internal
+
+	Clear error when trying next IP address
+	If connecting to an IP address fails, the GError must be
+	cleared before trying the next address, otherwise the
+	error will be overwritten on next failure
+
+	* src/vncconnection.c: Clear error when trying next IP addr
+
+2010-09-02  Jonh Wendell  <jwendell at gnome.org>
+
+	Check if we have an error before reading or writing to the socket
+	If, in the middle of an operation the widget is destroyed, we
+	should check the has_error variable otherwise we can try to
+	read/write from/to an invalid socket.
+
+	Fix logic for removing unwanted encodings
+
+2010-08-27  Daniel P. Berrange  <berrange at redhat.com>
+
+	Fix files list in mingw32 specfile
+	The files for gtk-vnc and gvnc were inverted in the mingw32
+	RPM specfile
+
+2010-08-27  Marek Černocký  <marek at manet.cz>
+
+	Add Czech translation
+
+2010-08-27  Jonh Wendell  <jwendell at gnome.org>
+
+	Check if we have a valid socket before trying to close it
+	If we attempt to destroy the widget while VncConnection still
+	is trying to connect to the host, then priv->sock is not valid yet.
+
+2010-08-22  Shushi Kurose  <md81bird at hitaki.net>
+
+	Updated Japanese translation.
+
+2010-08-20  Håkon Enger  <hakon.enger at gmail.com>
+
+	Support Mac OS VNC authentication
+
+2010-08-20  Daniel P. Berrange  <berrange at redhat.com>
+
+	Add comment about where each keymap datasource came from
+	To assist in people identifying/resolving mistakes, add a note
+	about where each data source from keymaps.csv came from. Most
+	are from Linux kernel source data tables, a few were manually
+	matched up (Xwin/OS-X)
+
+	* src/keymap-gen.pl: Record data sources for keymaps.csv
+
+	Ensure automake maintainer mode is enabled
+
+	Add a cairo based framebuffer implementation
+	In GTK3, GdkImage has been removed completely. The vncimageframebuffer
+	class cannot thus be used. Replace it with a vnccairoframebuffer
+	class instead, but keep the old one around in GTK2 builds for ABI
+	compatability.
+
+	* src/vnccairoframebuffer.c, src/vnccairoframebuffer.h,
+	  src/libgtk-vnc_sym.version: Add new framebuffer impl
+	  based on Cairo.
+	* src/Makefile.am: Disable GdkImage based framebuffer on
+	  GTK3 builds
+	* src/vncdisplay.c: Always use Cairo based framebuffer
+
+	Fix typo in keycode names & improve error message
+	Fix typo in evdev keycode names left over from debugging. Improve
+	the error message when finding unknown keycodes
+
+	Mandate the use of Cairo for all drawing
+	Cairo has been used for GTK drawing for a long time and is now
+	mandatory in GTK3. Drop support for non-Cairo drawing ops since
+	they're obsolete.
+
+	* configure.ac: Check for Cairo
+	* src/vncdisplay.c: Drop non-cairo drawing
+
+2010-08-15  Daniel P. Berrange  <dan at berrange.com>
+
+	Reset xmit_buffer fields to fix reconnect
+	If a vnc_connection object was closed and reopened old data
+	in the xmit_buffer fields would cause a crash, since it was
+	not re-initialized
+
+2010-08-04  Lucian Adrian Grijincu  <lucian.grijincu at gmail.com>
+
+	Updated Romanian translation
+
+2010-08-03  Nils-Christoph Fiedler  <ncfiedler at gnome.org>
+
+	Added LowGerman translation
+
+	Added LowGerman translation
+
+2010-07-20  Daniel P. Berrange  <berrange at redhat.com>
+
+	Rewrite keymap code to work on more platforms
+	The current keymap code assumes an Xorg server on Linux with
+	either evdev or kbd drivers. This adds heuristics to detect
+	XQuartz (Xorg on OS-X) and XWin (Xorg on Cygwin). Further it
+	adds support for native GDK on OS-X and Win32.
+
+	It is not possible to assume that keycodes < 87 have a 1-1
+	mapping to RFB (XT) keycodes. Thus the keymap arrays must
+	have a complete dataset, all special casing is removed.
+
+	All master  keymaps are defined in a CSV file. THis covers
+	Linux keycodes, OSX keycodes, AT set1, 2 & 3, XT keycodes,
+	the XT encoding used by the Linux KBD driver, USB keycodes,
+	Win32 keycodes, the XT encoding used by Xorg on Cygwin,
+	the XT encoding used by Xorg on Linux with kbd driver.
+
+	Further RFB and final Xorg driver mappings are derived
+	from these master maps automatically. The keymap-gen.pl
+	tool can generate lookup tables between all possible
+	keycode sets as required.
+
+	eg To generate a map from native Win32 keycodes to RFB
+	keycodes
+
+	   keymap-gen.pl keymaps.csv win32 rfb
+
+	* gtk-vnc.spec.in, mingw32-gtk-vnc.spec.in: Require Text::CSV
+	  for generating keymaps
+	* src/Makefile.am: Generate keymaps dynamically
+	* src/keymap-gen.pl: Tool to generate keymaps from CSV file
+	* src/keymaps.csv: Master keymap definitions
+	* src/vncconnection.c: Improve keypress log message
+	* src/vncdisplay.c: Convert to guint16 for keymap table
+	* src/vncdisplaykeymap.c, src/vncdisplaykeymap.h: Use a
+	  new dynamically generated, full keymap.
+
+2010-07-20  Daniel P. Berrange  <dan at berrange.com>
+
+	Disable extended key events if keymap is unknown
+	Currently if we cannot determine the GDK keymap, we default to
+	the XT keymap. This is not a good choice because is causes
+	definite breakage on several platforms. If the keymap cannot
+	be determined, it is safer to disable the extended key event
+	support completely & rely on traditional VNC keysyms.
+
+	Also rename the x2pc methods to be gdk2rfb, since that's what
+	the conversion is actually doing.
+
+	Change way encodings are disabled at runtime
+	The approach for disabling pseudo encodings is fragile because
+	it relies on ordering in the array. Rewrite to allow removing
+	arbitrary encodings
+
+	Remove all gnulib code
+	Since the port to use GIO for sockets, there is no requirement
+	for gnulib. Delete it all
+
+	Switch over to use GIO for socket connections / DNS resolution
+	GIO provides GSocket and GResolver classes that can replace all
+	current use of POSIX sockets / DNS resolution APIs. This gives
+	cross platform portability for free, removing the need to use
+	gnulib for socket portability
+
+	* configure.ac: Check for GIO
+	* src/Makefile.am: Link to GIO
+	* src/vncconnection.c: Switch to using GSocket & friends
+	* src/vncdisplay.c: Remove winsock initialization code
+
+2010-07-14  Daniel P. Berrange  <dan at berrange.com>
+
+	Remove a few uses of stdint in favour of glib int types
+
+	Resync RPM specfiles based on latest Fedora devel
+
+	Update version to 0.4.1
+
+2010-07-13  Daniel P. Berrange  <berrange at redhat.com>
+
+	Fix test suite
+	* Makefile.am: list files in build-aux instead of wildcarding
+	* vc-list-files: Move to build-aux
+	* gnulib/lib/Makefile.am: Point to build-aux for vc-list-files
+	* gtk-vnc.spec.in: Run tests during RPM build
+	* tools/gvnccapture.c: Remove bogus N_ annotation. Not yet
+	  ready for i18n support.
+
+	Use separate soname when building against GTK-3
+	The GTK-3 library is not ABI compatible with GTK-2. Thus when
+	GTK-VNC builds against GTK-3 it is not ABI compatible with a
+	build done against GTK-2. It is thus neccessasry to allow for
+	parallel install of GTK-2 and GTK-3 builds. This is done by
+	changing the library name, pkgconfig name and include file
+	locations
+
+	 GTK-2:
+
+	    libgtk-vnc-1.0.so
+	    gtk-vnc-1.0.pc
+	    /usr/include/gtk-vnc-1.0
+
+	 GTK-3:
+
+	    libgtk-vnc-2.0.so
+	    gtk-vnc-2.0.pc
+	    /usr/include/gtk-vnc-2.0
+
+	NB, when enabling GTK-3, the traditional python bindings will
+	be disabled. The new GObject Introspection support provide an
+	alternative python binding for users of GTK-3
+
+	* gtk-vnc-1.0.pc.in: Fix to only use GTK-2
+	* gtk-vnc-2.0.pc.in: New for GTK-3 support
+	* src/Makefile.am: Different sonames & include dirs when
+	  building against GTK3
+	* configure.ac: Disable python binding with GTK3
+	* README: Add note about GTK3
+	* Makefile.am: Install new pkgconfig file for GTK3
+
+2010-07-11  Daniel P. Berrange  <berrange at redhat.com>
+
+	Fix ChangeLog generation
+	Cannot assume changelog generation is run directlyin source
+	directory
+
+	Add gvncviewer.js to EXTRA_DIST
+
+	Remove GNOME compile warnings checks
+	Remove GNOME compile warnings checks, since GTK-VNC already has
+	custom checks that are far more aggressive in enabling compile
+	warnings. C++ compiler warnings are not required
+
+	Update metadata files ready for new release
+	Updated AUTHORS, MAINTAINERS, NEWS, README for new release.
+
+	Autogenerate ChangeLog from GIT logs
+
+	Fix mingw32 RPM specfile
+	Add the gvnccapture program to the mingw32 RPM spec
+
+	Fix DLL linking on mingw32
+	libtool does not like -Wl,--no-undefined, even though the compiler
+	and linker are happy enough. Revert to using -no-undefined on
+	mingw32 platforms. Also use the correct style of linker script
+	for exporting symbols on mingw32
+
+	Add missing deps for gobject introspection
+	Add RPM specfile BRs for gobject introspection support
+
+2010-07-11  Daniel P. Berrange  <dan at berrange.com>
+
+	Replace getline with fgets for win32 portability
+	The getline function is gnu specific. Replace with use of fgets
+	for portability to win32
+
+	Make use of termios.h conditional, to fix win32 builds
+	Win32 does not have termios support to disable terminal echo.
+	Disable that code until a better solution can be found.
+
+	Drop autoconf version back to 2.63
+	Fedora 12 only has autoconf 2.63. Drop back minimum version to
+	allow this usage
+
+2010-07-05  Daniel P. Berrange  <dan at berrange.com>
+
+	Fix dead framebuffer refresh after psuedo encodings
+	Users of VncConnection are responsible for requesting framebuffer
+	updates after every framebuffer update, resize of pixel encoding
+	change. Other pseudo encodings are not visible to users of the
+	VncConnection class, so a framebuffer update request must be
+	re-requested if one of these psuedo encodings arrives
+
+	Fix parallel build with introspection data
+	THe GVnc introspection data must be built before GtkVnc data.
+
+	Add a gvnccapture command line tool
+	Add a command line tool for capturing a screenshot of a VNC
+	desktop
+
+	Change vnc_connection_framebuffer_update_request to use boolean
+	Use a boolean for the incremental parameter in the
+	vnc_connection_framebuffer_update_request API
+
+	When using 32bpp, depth 24 fill alpha byte.
+	When constructing a GdkPixbuf from the framebuffer pixel array,
+	it will expect the alpha bits to be initialized to a sensible
+	value. Since we don't care about alpha, make sure 32bpp, depth 24
+	format sets alpha to 0xff (full opaque).
+
+	Fix emitting of unsupported auth signal
+	The vnc_connection_set_auth_type method is invoked from the system
+	coroutine, so it must directly emit the signal, not use the delayed
+	signal emitter
+
+	Change vnc_connection_key_event to use a boolean
+	Use a boolean for the down flag in the vnc_connection_key_event#
+	API.
+
+	Add padding to GObject classes
+	To allow the class structs to be expanded later without breaking
+	ABI it is neccessary to include padding in the structs. If extra
+	fields are later added, an equivalent amount padding must be
+	remnoved
+
+2010-06-30  Jonh Wendell  <jwendell at gnome.org>
+
+	Allows linking with gtk+2.0 and gtk+3.0
+	This adds a new configure parameter: --with-gtk=2.0|3.0 (default: 2.0)
+
+	Prepare for gtk+ >= 2.22
+	This uses accessors instead of accessing struct members
+
+2010-06-29  Jonh Wendell  <jwendell at gnome.org>
+
+	Fixed GOBJECT flags
+
+2010-06-26  Gil Forcada  <gforcada at gnome.org>
+
+	Added Catalan translation
+
+2010-06-22  Jonh Wendell  <jwendell at gnome.org>
+
+	Only handle motion events when initialized.
+	Closes #622429.
+
+2010-06-17  Michal Novotny  <minovotn at redhat.com>
+
+	Add APIs for configurable key grab sequences
+	Allow the key grab sequence to be configured by applications.
+	The grab sequence is represented by a new boxed data object
+
+	  VncGrabSequence
+
+	This can be created from an array of keysyms
+
+	  guint keys[] = { GDK_Control_L, GDK_Alt_L };
+	  guint len = sizeof(keys)/sizeof(keys[0]);
+	  vnc_grab_sequence_new(len, keys);
+
+	Or from a string format
+
+	  vnc_grab_sequence_new_from_string("Control_L+Alt_L");
+
+	The gvncviewer.c example program shows a user interface for
+	configuring key sequences. The gvncviewer.py example program
+	demonstrates access from the python binding.
+
+	This patch is heavily based on the original proposal from
+	Michal Novotny
+
+2010-06-17  Daniel P. Berrange  <dan at berrange.com>
+
+	Add support for colourmap based pixel formats
+	The current code will force the server to use the native
+	client's pixel format if it ever sees a pixel format
+	with true_color_flag==0 (ie colourmap).  This is bad because
+	the client native pixel format is almost always 32bpp while
+	the main reason for using a colourmap is to get bandwidth
+	friendly 8bpp format. This makes GTK-VNC look bad in any
+	performance comparisons.
+
+	This patch implements full support for rendering from
+	colourmaps. It introduces a boxed data type to store the
+	colour map entries and wires this upto the framebuffer
+	interface.
+
+	For rendering, the BLT functions for the VncBaseFramebuffer
+	are enhanced to cope with colourmaps. Since colour maps
+	provide 16bit r,g,b triples, the BLT code is enhanced to
+	cope with 64-bit bpp pixels. This is technically required
+	even for non-colourmap entries since the VNC pixel format
+	protocol message allows for 16 bit r,g,b masks which
+	results in a 64-bit true colour pixel.
+
+	* src/vnccolormap.h, src/vnccolormap.c, src/Makefile.am: Add
+	  a VncColorMap boxed data type to hold the colour map entries.
+	* src/vncframebuffer.h, src/vncframebuffer.c: Add an API to
+	  the VncFrameBuffer interface to allow the colour map to be
+	  updated.
+	* src/vncconnection.h, src/vncconnection.c: Remove last case
+	  of vnc_ops and replace with new VncColorMap object
+	* src/vncdisplay.c: Don't override the default server pixel
+	  format, allow use of colour maps
+	* src/vncbaseframebuffer.c, src/vncbaseframebufferblt.h: Add
+	  support for rendering pixels using a colourmap
+
+	Fix off by 1 in initial protocol greeting
+	The client -> server greeting must be 12 bytes long, ending in a
+	newline character. An off-by-1 in snprintf resulted in the 12th
+	byte being a NULL instead. This caused wireshark to not detect
+	the stream as VNC
+
+	Fix the vnc_connection_set_encodings method write
+	The vnc_connection_set_encodings method is a public API which is
+	called from the system coroutine. Thus is must use the buffered
+	write routines.
+
+	Fix crash in server cut text
+	GString needs to be freed with g_string_free rather than g_free.
+	Fix the signature of the cut text callback
+
+2010-06-11  Jonh Wendell  <jwendell at gnome.org>
+
+	Build with GSEAL. Closes #612727.
+	Now we require gtk+ 2.18.
+
+	git-ignore build-aux dir
+
+	Modernize autotools. Bug #621312.
+
+2010-06-08  Daniel P. Berrange  <berrange at redhat.com>
+
+	Try next DNS addr after all connect failures
+	There are many more ways an IPv6 connection can fail than just
+	CONNREFUSED and HOSTUNREACH. For example ETIMEDOUT, NETUNREACH
+	and more. Try the next DNS addr after all connect() failures,
+	no matter what the errno code, to ensure we always fallback
+	to IPv4 eventually.
+
+	* src/vncconnection.c: Retry connection after all errors
+
+2010-04-25  Takeshi AIHANA  <takeshi.aihana at gmail.com>
+
+	Add Japanese translation
+
+2010-04-23  Matej Urbančič  <mateju at svn.gnome.org>
+
+	Updated Slovenian translation
+
+2010-04-05  Kris Thomsen  <lakristho at gmail.com>
+
+	Updated Danish translation
+
+2010-04-05  Kenneth Nielsen  <k.nielsen81 at gmail.com>
+
+	Added da to list of languages
+
+2010-03-22  Halton Huo  <halton.huo at sun.com>
+
+	Conditional use JRI stuff in npupp.h
+	Since 3.6, firefox does not ship jri.h, so remove it from npupp.h
+	as GTK-VNC does not need it
+
+	Add -lgpg-error to linker flags
+	The gcrypt.h file has several inline functions which cause code
+	using gcrypt to have a direct link time dependancy on gpg-error,
+	if the compiler decides to inline. Thus we need to add -lgpg-error
+	to the linker flags to cope with potential inlining
+
+	* configure.ac: Add -lgpg-error to GNUTLS_LIBS
+
+2010-03-22  Daniel P. Berrange  <berrange at redhat.com>
+
+	Use --no-undefined instead of -no-undefined
+	Solaris can't cope with -no-undefined, and even Linux prefers the
+	--no-undefined style.
+
+2010-03-21  Daniel P. Berrange  <berrange at redhat.com>
+
+	Turn on debug in javascript example program
+	* src/Makefile.am: Include vncutil.h/.c in introspection processing
+	* examples/gvncviewer.js: Enable debugging
+
+	Fix include files / libs in new RPM split
+	The gvnc-devel package mistakenly included the gtk-vnc include
+	directory. The gtk-vnc package mistakenly included the gvnc.so
+	library
+
+	Support GObject introspection & add javascript demo program
+	Add Makefile.am rules to generate a typelib with introspection
+	data. Add a javascript demo program to show how trivial it is.
+
+	Turn VncPixelFormat into a boxed type
+	To allow introspection to work with VncPixelFormat properties,
+	this struct needs to be a boxed type
+
+	Split up library into libgvnc.so (GObject) bits and libgtk-vnc.so (GTK widget)
+	The libgvnc.so library comprises the classes
+
+	  VncConnection
+	  VncPixelFormat
+	  VncFramebuffer
+	  VncBaseFramebuffer
+	  VncCursor
+	  VncConnection
+
+	This only depends on glib, gobject and gdk-pixbuf
+
+	The libgtk-vnc.so library comprises the classes
+
+	  VncDisplay
+	  VncImageFramebuffer
+
+	Adding a dependancy on GTK
+
+	Update copyright headers after last round of object refactoring
+	In the major 20-patch series of object refactoring, the copyright
+	headers were mistakenly not updated. Add extra copyright header to
+	reflect the work done
+
+	Introduce a function for setting debug flag in prep for library split
+	The base APIs will soon be split into a separate libgvnc.so library.
+	Since libgtk-vnc.so exposes the --gtk-vnc-debug flag, this needs to
+	be implemented using an API in the libgvnc.so library, rather than
+	just a static boolean flag in vncdisplay.c
+
+	The GVNC_DEBUG macros is also renamed to VNC_DEBUG
+
+	* vncutil.c, vncutil.h: New file for vnc_util_set_debug(gboolean)
+	* utils.h: Remove old debug flag
+	* dh.c, vncbaseframebuffer.c, vncconnection.c, vncdisplay.c,
+	  vncdisplaykeymap.c, vncimageframebuffer.c: s/GVNC_DEBUG/VNC_DEBUG/
+	* Makefile.am: Add vncutil.h/.c files
+
+2010-03-20  Daniel P. Berrange  <berrange at redhat.com>
+
+	Avoid crash if framebuffer is not set & silence warning
+	* src/vncdisplay.c: Avoid possible crash if framebuffer isn't set
+	* src/vncconnection.c: Avoid warning when sasl is not enabled
+
+	Move all coroutine stuff into VncConnection
+	The VncDisplay class currently runs the main coroutine for the
+	VncConnection. This means some VncConnection APIs need to be
+	invoked from the VNC coroutine context, while others need to be
+	invoked from the main system context. This will make the
+	VncConnection class very hard to use from non-C languages like
+	Python/Perl/Java/etc.
+
+	Move all the coroutine code into the VncConnection class. All
+	its APIs are now to be invoked from system context. This means
+	it can now easily be used from any language
+
+	Move X keycode -> PC scancode conversion into VncDisplay
+	The VncConnection class should not depend on anything from GDK.
+	The X keycode to PC scancode conversion uses GDK. Therefore it
+	had to be moved into the VncDisplay class
+
+	Rename enums from GVNC_ to VNC_CONNECTION_
+	Rename the symbols for the VncConnectionEncoding, VncConnectionAuth
+	and VncConnectionAuthVencrypt enums to use a prefix of
+	VNC_CONNECTION_ instead of GVNC_
+
+	Remove jpeg_render function and use gdk-pixbuf directly
+
+	Replace 'auth_type' and 'auth_subtype' operations with signals
+	Remove the 'auth_type' and 'auth_subtype' operation callbacks.
+	Introduce new 'vnc-auth-choose-type' and 'vnc-auth-choose-subtype'
+	signals
+
+	Replace 'auth_cred' operation with a signal
+	Remove the 'auth_cred' operation in VncConnection. Introduce a
+	new 'vnc-auth-credential' signal
+
+	Remove 'get_preferred_pixel_format' operation
+	Remove the 'get_preferred_pixel_format' operation callback, and
+	instead directly set the pixel format (if desired) during the
+	initialization phase of the coroutine
+
+	Replace 'auth_failure' and 'auth_unsupported' operations with signals
+	Remove the 'auth_failure' and 'auth_unsupported' operation callbacks
+	from VncConnection. Introduce new 'vnc-auth-failure' and
+	'vnc-auth-unsupported' signals.
+
+	Replace 'update', 'resize' and 'pixel_format' operation callbacks with signals
+	Remove the 'update', 'resize' and 'pixel_format' operation callbacks
+	from VncConnection. Introduce new 'vnc-framebuffer-update',
+	'vnc-desktop-resize' and 'vnc-pixel-format-changed' signals
+
+	Replace 'server_cut_text' operation with a signal
+	Remove the 'server_cut_text' operation from VncConnection.
+	Introduce a signal 'vnc-server-cut-text' for VncConnection and
+	pass in the text
+
+	Replace 'bell' operation with a signal
+	Remove the 'bell' operation callback from VncConnection.
+	Introduce a signal 'vnc-bell' for VncConnection.
+
+	Replace 'pointer_type_changed' operation with a signal
+	Remove the 'pointer_type_changed' operation callback from VncConnection.
+	Introduce a signal 'vnc-pointer-mode-changed' and pass it the pointer
+	state as a gboolean
+
+	Replace 'local_cursor' operation callback with a signal
+	Remove the 'local_cursor' operation callback from VncConnection.
+	Introduce a signal 'vnc-cursor-changed' and pass it as a
+	VncCursor object
+
+	Introduce a VncCursor object
+	Introduce a VncCursor object to represent a client side rendered
+	pointer
+
+	Tidy up header files to have consistent coding style
+
+	Convert VncConnection into a proper GObject type
+
+	Generate enum types for VncConnection enums
+
+	Convert VncConnection over to use VncFramebuffer object
+	Remove the vnc_framebuffer struct, and make VncConnection use the
+	new VncFramebuffer object.
+
+	VncDisplay is changed to use the VncImageFramebuffer object
+	type as its implementation of VncFramebuffer
+
+	Add a framebuffer implementation based on a GdkImage
+	Subclass the VncBaseFramebuffer class to add an implementation
+	which uses a GdkImage as its local storage
+
+	Add a VncFrameBuffer interface and basic implementation
+	Define the interface for a framebuffer and rendering into it
+	between local & remote pixel formats.
+
+	Provide a basic implementation of the interface using simple
+	blt functions for a local memory region
+
+	Pull pixel format struct out into a separate file with typedef
+	Turn struct vnc_pixel_format into VncPixelFormat type
+
+	Rename gvnc module to prepare for turning into public GObjects
+	  struct gvnc -> VncConnection
+
+	  gvnc_ops -> vnc_connection_ops   (to be later removed)
+	  gvnc_framebuffer -> vnc_framebuffer (to be later replaced)
+	  gvnc_pixel_format -> vnc_pixel_format (to be later replaced)
+	  gvnc_dh -> vnc_dh
+
+	Rename gvnc.[h,c] -> vncconnection.[h,c]
+
+	Add some installation caveats to README
+	Add note about NetBSD swapcontext() problems & Mingw SASL limitation
+
+	Fix compile warnings
+	Fix the compile warnings / initialization order bug from
+
+	  commit 0a6bae9c19e9f86dda5433d8260d5f29e7ef4ed1
+
+	* src/vncdisplay.c: Fix variable init order & mark function static
+
+2010-03-20  Andre Klapper  <a9016009 at gmx.de>
+
+	Remove use of 'widget->window' in favour of gtk_widget_get_window()
+	When building using -DGSEAL_ENABLE, the 'widget->window' field is
+	not available. Instead the gtk_widget_get_window() method must be
+	used
+
+	* configure.ac: Bump dep on GTK to 2.14
+	* src/vncdisplay.c: Switch to gtk_widget_get_window()
+
+2010-03-20  Emilio Pozuelo Monfort  <pochu27 at gmail.com>
+
+	Remove use of PATH_MAX in favour of dynamic buffers
+	GNU/Hurd does not define the PATH_MAX constant. Replace use of
+	PATH_MAX with dynamic buffers instead.
+
+	* src/vncdisplay.c: Remove use of PATH_MAX
+
+2010-03-20  Michal Suchanek  <hramrach at centrum.cz>
+
+	Improve error message in gvncviewer when connection fails
+	The 'vnc-disconnected' signal is emitted both when a connection
+	closes, and when a connection fails to initialize at all. The
+	gvncviewer demo was not taking account of this, so providing a
+	misleading diagnostic message
+
+	* examples/gvncviewer.c: Distinguish errors conditions in
+	  disconnect signal
+
+2010-03-20  Halton Huo  <halton.huo at sun.com>
+
+	Remove check for NSPR in configure.ac
+	The firefox/mozilla-plugin pkgconfig files already have a dependancy
+	on the nspr package. Thus there is no need for an explicit NSPR check
+	in gtk-vnc.
+
+	* configure.ac: Remove redundant check for NSPR
+
+2010-03-20  Daniel P. Berrange  <berrange at redhat.com>
+
+	Add plugin to .gitignore files
+
+2010-03-20  Halton Huo  <halton.huo at sun.com>
+
+	Pull in npapi.h & npupp.h from FF3 source to fix plugin build
+	Latest versions of firefox do not provide the npapi.h/npupp.h
+	files that the plugin requires to build. Copy those files from
+	the FF3 source tree into plugin to provide compatability.
+
+	* plugin/npapi.h, plugin/npupp.h: Pull in from FF3 source tree
+
+2010-03-20  Guido Günther  <agx at sigxcpu.org>
+
+	Add -Wl since --no-undefined is a linker option
+	The --no-undefined option was not being processed correctly, since
+	it needs a -Wl prefix to be passed through to the linker
+
+	* src/Makefile.am: Add -Wl to --no-undefined arg
+
+	Explicitly link against X11 libs for XkbGetKeyboard
+	When building with --no-undefined and modern linkers, X11 won't
+	be found implicitly. Therefore it is neccessary to link directly
+	to X11
+
+	* configure.ac: Use pkgconfig to check for X11 libs
+	* src/Makefile.am: Link against X11
+
+	Fix symbol versioning script application
+	* src/Makefile.am: Drop space after -Wl, in libgtk_vnc_1_0_la_LDFLAGS
+	  to ensure linker script is applied
+
+	Add missing symbols
+	* src/libgtk-vnc_sym.version: Add missing symbols from 0.3.8
+	  and 0.3.9 releases
+
+2010-03-18  Sjoerd Simons  <sjoerd.simons at collabora.co.uk>
+
+	Make sure the local pointer setting is respected on enter events
+	Patch from
+
+	  https://bugzilla.gnome.org/show_bug.cgi?id=577580
+
+2010-03-18  Leonid Kanter  <leon at asplinux.ru>
+
+	Added Russian translation
+
+2010-02-27  Chao-Hsiung Liao  <j_h_liau at yahoo.com.tw>
+
+	Added Traditional Chinese translation(Hong Kong and Taiwan)
+
+2010-01-24  A S Alam  <aalam at users.sf.net>
+
+	Adding Punjabi (pa) Translation by A S Alam (aman)
+
+2009-12-17  Daniel P. Berrange  <berrange at redhat.com>
+
+	Initialize gcrypt threading callbacks
+	If GTK has threading enabled, we must be sure to enable gcrypt
+	threading callbacks too for safety
+
+2009-12-13  Daniel P. Berrange  <berrange at redhat.com>
+
+	Remove use of stdint in favour of GLib fixed size types
+	GLib provides guint8, gint8, guint16, gint16, guint32, gint32
+	data types. Use these instead of stdint.h, so we better follow
+	standard GLibc practice.
+
+2009-11-18  Lyper Lai  <lyp069 at gmail.com>
+
+	Add Simplified Chinese translation.
+
+2009-10-29  Jonh Wendell  <jwendell at gnome.org>
+
+	Only memcpy() if source and destination are different
+
+	Drop the useless global variable signalCredParam
+
+2009-10-28  Jonh Wendell  <jwendell at gnome.org>
+
+	Fix a memory leak by freeing a buffer variable
+
+	Fix a memory leak by freeing the remote cursor
+
+	Fix a memory leak by freeing a GdkGC private variable
+
+	Fix a memory leak by freeing the result of gdk_pixbuf_format_get_name()
+
+	Fix a memory leak by freeing the private null cursor
+
+	Fix a memory leak by freeing host and port private variables
+
+2009-10-21  Jonh Wendell  <jwendell at gnome.org>
+
+	Fix plugin build. Closes #599146.
+
+2009-10-21  Matej Urbančič  <mateju at svn.gnome.org>
+
+	Added sl for Slovenian language
+
+	Updated Slovenian translation
+
+2009-10-21  Jonh Wendell  <jwendell at gnome.org>
+
+	Avoid a GCC warning
+
+2009-10-20  Jonh Wendell  <jwendell at gnome.org>
+
+	0.3.10 release
+
+2009-10-17  Simos Xenitellis  <simos at gnome.org>
+
+	Added el to po/LINGUAS
+
+2009-10-17  Pavlos Tournaris  <p.tournaris at gmail.com>
+
+	Added Greek translation
+
+2009-10-15  Jonh Wendell  <jwendell at gnome.org>
+
+	Added the ability to request an update.
+	vnc_display_request_update() is the new symbol.
+
+2009-10-06  Jonh Wendell  <jwendell at gnome.org>
+
+	Request a full screen refresh when receives a desktop-resize encoding.
+	Closes #585571.
+
+2009-09-30  Jonh Wendell  <jwendell at gnome.org>
+
+	Added depth color tunning into VncDisplay.
+	Provide a set_depth() in VncDisplay which tunes that setting.
+	In gvnc_initialize we always call get_preferred_pixel_format() which
+	makes use of that tunning.
+
+2009-09-19  Gabor Kelemen  <kelemeng at gnome.hu>
+
+	Added hu to LINGUAS
+
+	Added Hungarian translation
+
+2009-09-18  Luca Ferretti  <elle.uca at libero.it>
+
+	Added it to LINGUAS
+
+	Added Italian translation
+
+2009-09-17  Jonh Wendell  <jwendell at gnome.org>
+
+	Deleted .hgignore
+
+	Updated Makefile rules for .gitignore
+
+	Updated README
+
+	Use glib-mkenums to automatically create GTypes from C enums.
+
+2009-09-13  Philip Withnall  <philip at tecnocode.co.uk>
+
+	Added British English translation
+
+2009-09-09  Piotr Drąg  <piotrdrag at gmail.com>
+
+	Updated Polish translation
+
+2009-09-07  António Lima  <amrlima at gmail.com>
+
+	Updated Portuguese translation
+
+2009-09-06  António Lima  <amrlima at gmail.com>
+
+	Updated Portuguese translation
+
+2009-09-04  Claude Paroz  <claude at 2xlibre.net>
+
+	Added French translation
+
+2009-08-30  Jorge González  <jorgegonz at svn.gnome.org>
+
+	Added es to LINGUAS
+
+	Added Spanish translation
+
+2009-08-28  Inaki Larranaga  <dooteo at zundan.com>
+
+	Added Basque translation
+
+2009-08-28  Daniel P. Berrange  <berrange at redhat.com>
+
+	Disable build-aux since its broken on older libtool/intltool
+	* configure.ac: Disable use of build-aux rule
+
+2009-08-25  Daniel P. Berrange  <berrange at redhat.com>
+
+	Include po files in RPM builds
+	* gtk-vnc.spec.in, mingw32-gtk-vnc.spec.in: Use %lang related macros
+	  to pull in po files to RPM
+
+	Re-write configure rules to avoid many warnings
+	* acinclude.m4: Add helper function for checking a huge list of
+	  compile flags. Also test ability to link with the flag, not just
+	  to compile.
+	* configure.ac: gl_EARLY must come before every rule that isnt
+	  just autoconf/make metadata initialization. Call out to the
+	  generic compile flag macro. Turn off automake's GNU-make-ism
+	  warnings.
+	* autobuild.sh: Change way compile warnings are turned on
+	* src/Makefile.am: Enable compile warning flags on python build
+
+	Add separate m4 dir to avoid intltool/libtool splattering over gnulib
+	If no generic -I m4 directory is listed, libtool & intltool will
+	splatter their files all over those belonging to gnulib. This gives
+	wierd, unpredictable build errors depending on whose file was copied
+	over most recently.
+
+	* Makefile.am: Add -I m4 flag
+
+	Invoke intltoolize in autogen.sh
+	* autogen.sh: Run intltoolize
+
+	Don't do arithmetic on void *, to avoid compile warnings
+	* src/gvnc.c: Cast to char * before doing arithmetic
+
+2009-08-25  Michal Suchanek  <hramrach at centrum.cz>
+
+	Set a default hostname in viewer demo program
+	* examples/gvncviewer.c: Set a default hostname of 127.0.0.1
+	  if only a port number is given
+
+2009-08-25  John Haxby  <john.haxby at oracle.com>
+
+	Drop the connection if some credentials cannot be set
+	* examples/gvncviewer.py: Close VNC connection if setting a credential
+	  fails
+
+	Make the authorization dialog more friendly
+	* examples/gvncviewer.py: Hide the password as the user types
+	  it in and allow authentication to complete when you hit Enter.
+
+2009-08-23  Mario Blättermann  <mariobl at gnome.org>
+
+	Added German translation
+
+2009-08-20  Halton Huo  <halton.huo at sun.com>
+
+	Checking SASL for -lsasl2 or -lsasl. Closes #591521.
+
+2009-08-20  Daniel Nylander  <po at danielnylander.se>
+
+	Updated Swedish translation
+
+2009-08-19  Fran Diéguez  <fran.dieguez at glug.es>
+
+	Added Galician Translation
+
+2009-08-19  Henrique P. Machado  <zehrique at gmail.com>
+
+	Updated Brazilian Portuguese translation.
+
+2009-08-17  Jonh Wendell  <jwendell at gnome.org>
+
+	Added DOAP file
+
+	Added basic Brazilian Portuguese translation
+
+	Added i18n initial support.
+
+	Use git.mk from Behdad Esfahbod. It generates .gitignore automatically.
+
+	Include vncmarshal.h in vncmarshal.c generation.
+	This fix a gcc warning.
+
+2009-08-11  Jonh Wendell  <jwendell at gnome.org>
+
+	Disable cvs tests
+
+	Output SASL configure options in configure.ac
+
+2009-08-10  Daniel P. Berrange  <berrange at redhat.com>
+
+	Update for 0.3.9 release
+	* NEWS: Add details new features/bugs fixed in 0.3.9
+	* configure.ac: Update version to 0.3.9
+
+	Add rest of C-A-Fn menu options to example
+	* examples/gvncviewer.c: Add menu shortcut for Ctrl-Alt-F2->8
+
+2009-08-10  Jonh Wendell  <jwendell at gnome.org>
+
+	Added vnc_display_get_option_entries() symbol in VncDisplay.
+	It returns a GOptionEntry *. It's up to apps to integrate those
+	options, returned by gtk-vnc into their own groups. This makes
+	things flexible.
+
+2009-07-25  Jonh Wendell  <jwendell at gnome.org>
+
+	Don't send keys if we are in read only mode
+
+2009-07-06  Daniel P. Berrange  <berrange at redhat.com>
+
+	Annotate unusued params with G_GNUC_UNUSED to avoid warnings
+
+	Remove trailing whitespace from all files
+
+	Remove useless if() before free()
+
+	Re-fix Shift+Tab keyval translation from 1e121b4084788399c4d71d60b513997661e3116e, accidentally reverted in 4f4103fbc7021a3ae8e9c43e1f561cd8f65481aa
+
+	Remove bogus trailing newlines from all GVNC_DEBUG calls
+
+2009-06-15  Daniel P. Berrange  <berrange at redhat.com>
+
+	Add explicit link to libgcrypt for MS Logon extension, to avoid link problem on Win32
+
+2009-06-15  Bruce Cowan  <bcowan at fastmail.co.uk>
+
+	Remove deprecated GTK+ symbols
+
+2009-06-15  Daniel P. Berrange  <berrange at redhat.com>
+
+	Disable SASL when building on mingw32
+
+	Added 2 missing #if HAVE_SASL conditionals
+
+2009-06-10  Daniel P. Berrange  <berrange at redhat.com>
+
+	Add support for SASL authentication type
+
+	Fix inverted logic for releasing pointer grab when switching to absolute mouse mode
+
+	Process all enter/leave events to ensure we release key grab after a mouse ungrab in relative mode
+
+2009-04-17  Jonh Wendell  <jwendell at gnome.org>
+
+	Added support for UltraVNC MS-Logon auth type
+
+2009-03-17  Jonh Wendell  <jwendell at gnome.org>
+
+	Added MAINTAINERS file
+
+	Do not send clipboard messages when in View Only state
+
+2009-02-26  Daniel P. Berrange  <berrange at redhat.com>
+
+	Change pointer grab to allow movement across entire desktop and fix warping of pointer at desktop edges, to make relative mouse mode work correctly. Document what's going on with more comments.
+
+2009-02-20  Jonh Wendell  <jwendell at gnome.org>
+
+	Ignore some files
diff --git a/INSTALL b/INSTALL
index 6e90e07..007e939 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,7 +1,7 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation,
+Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
 Inc.
 
    Copying and distribution of this file, with or without modification,
diff --git a/Makefile.am b/Makefile.am
index 64d8ecf..69d1f50 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -69,7 +69,7 @@ dist-hook: gen-ChangeLog gen-AUTHORS
 
 .PHONY: gen-ChangeLog
 gen-ChangeLog:
-	$(AM_V_GEN)if test -d .git; then		\
+	$(AM_V_GEN)if test -d $(srcdir)/.git; then	\
 	  $(top_srcdir)/build-aux/gitlog-to-changelog	\
 	    --since=$(gen_start_date) > $(distdir)/cl-t;\
 	  rm -f $(distdir)/ChangeLog;			\
diff --git a/Makefile.in b/Makefile.in
index fc3f79f..d9bdf8c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,22 +80,21 @@ build_triplet = @build@
 host_triplet = @host@
 @HAVE_PULSEAUDIO_TRUE at am__append_1 = gvncpulse-1.0.pc
 subdir = .
-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(srcdir)/config.h.in \
-	$(srcdir)/gtk-vnc-1.0.pc.in $(srcdir)/gtk-vnc-2.0.pc.in \
-	$(srcdir)/gtk-vnc.spec.in $(srcdir)/gvnc-1.0.pc.in \
-	$(srcdir)/gvncpulse-1.0.pc.in $(srcdir)/mingw-gtk-vnc.spec.in \
+DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
+	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/configure $(am__configure_deps) \
+	$(srcdir)/config.h.in $(srcdir)/gvnc-1.0.pc.in \
+	$(srcdir)/gvncpulse-1.0.pc.in $(srcdir)/gtk-vnc-1.0.pc.in \
+	$(srcdir)/gtk-vnc-2.0.pc.in $(srcdir)/gtk-vnc.spec.in \
+	$(srcdir)/mingw-gtk-vnc.spec.in COPYING.LIB build-aux/compile \
+	build-aux/config.guess build-aux/config.sub \
+	build-aux/install-sh build-aux/missing build-aux/ltmain.sh \
 	$(top_srcdir)/build-aux/compile \
 	$(top_srcdir)/build-aux/config.guess \
 	$(top_srcdir)/build-aux/config.sub \
 	$(top_srcdir)/build-aux/install-sh \
 	$(top_srcdir)/build-aux/ltmain.sh \
-	$(top_srcdir)/build-aux/missing \
-	$(top_srcdir)/build-aux/mkinstalldirs $(top_srcdir)/configure \
-	AUTHORS COPYING.LIB ChangeLog INSTALL NEWS build-aux/compile \
-	build-aux/config.guess build-aux/config.sub \
-	build-aux/install-sh build-aux/ltmain.sh build-aux/missing \
-	build-aux/mkinstalldirs
+	$(top_srcdir)/build-aux/missing
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-vnc-warnings.m4 \
 	$(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \
@@ -79,7 +106,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
  configure.lineno config.status.lineno
-mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES = gvnc-1.0.pc gvncpulse-1.0.pc gtk-vnc-1.0.pc \
 	gtk-vnc-2.0.pc gtk-vnc.spec mingw-gtk-vnc.spec
@@ -98,13 +125,14 @@ am__v_at_0 = @
 am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
-	html-recursive info-recursive install-data-recursive \
-	install-dvi-recursive install-exec-recursive \
-	install-html-recursive install-info-recursive \
-	install-pdf-recursive install-ps-recursive install-recursive \
-	installcheck-recursive installdirs-recursive pdf-recursive \
-	ps-recursive uninstall-recursive
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+	ctags-recursive dvi-recursive html-recursive info-recursive \
+	install-data-recursive install-dvi-recursive \
+	install-exec-recursive install-html-recursive \
+	install-info-recursive install-pdf-recursive \
+	install-ps-recursive install-recursive installcheck-recursive \
+	installdirs-recursive pdf-recursive ps-recursive \
+	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -141,9 +169,30 @@ am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
 DATA = $(pkgconfig_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
-AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
-	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+am__recursive_targets = \
+  $(RECURSIVE_TARGETS) \
+  $(RECURSIVE_CLEAN_TARGETS) \
+  $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
 	cscope distdir dist dist-all distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
+	$(LISP)config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 CSCOPE = cscope
@@ -556,14 +605,13 @@ uninstall-pkgconfigDATA:
 # (1) if the variable is set in 'config.status', edit 'config.status'
 #     (which will cause the Makefiles to be regenerated when you run 'make');
 # (2) otherwise, pass the desired values on the 'make' command line.
-$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+$(am__recursive_targets):
+	@fail=; \
+	if $(am__make_keepgoing); then \
+	  failcom='fail=yes'; \
+	else \
+	  failcom='exit 1'; \
+	fi; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
 	case "$@" in \
@@ -584,31 +632,13 @@ $(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
 	if test "$$dot_seen" = "no"; then \
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
 	fi; test -z "$$fail"
-tags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
-	done
-ctags-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
-	done
-cscopelist-recursive:
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
-	done
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -624,12 +654,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
 	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
-	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -641,15 +666,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -658,18 +679,16 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
-
 cscope: cscope.files
 	test ! -s cscope.files \
 	  || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
-
 clean-cscope:
 	-rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
 
-cscope.files: clean-cscope cscopelist-recursive cscopelist
-
-cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -805,9 +824,9 @@ distcheck: dist
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	esac
-	chmod -R a-w $(distdir); chmod u+w $(distdir)
-	mkdir $(distdir)/_build
-	mkdir $(distdir)/_inst
+	chmod -R a-w $(distdir)
+	chmod u+w $(distdir)
+	mkdir $(distdir)/_build $(distdir)/_inst
 	chmod a-w $(distdir)
 	test -d $(distdir)/_build || exit 0; \
 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
@@ -979,33 +998,31 @@ ps-am:
 
 uninstall-am: uninstall-pkgconfigDATA
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
-	cscopelist-recursive ctags-recursive install-am install-strip \
-	tags-recursive
-
-.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
-	all all-am am--refresh check check-am clean clean-cscope \
-	clean-generic clean-libtool cscope cscopelist \
-	cscopelist-recursive ctags ctags-recursive dist dist-all \
-	dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar dist-tarZ \
-	dist-xz dist-zip distcheck distclean distclean-generic \
-	distclean-hdr distclean-libtool distclean-tags distcleancheck \
-	distdir distuninstallcheck dvi dvi-am html html-am info \
-	info-am install install-am install-data install-data-am \
-	install-dvi install-dvi-am install-exec install-exec-am \
-	install-html install-html-am install-info install-info-am \
-	install-man install-pdf install-pdf-am install-pkgconfigDATA \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-generic \
-	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
-	uninstall uninstall-am uninstall-pkgconfigDATA
+.MAKE: $(am__recursive_targets) all install-am install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+	am--refresh check check-am clean clean-cscope clean-generic \
+	clean-libtool cscope cscopelist-am ctags ctags-am dist \
+	dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \
+	dist-tarZ dist-xz dist-zip distcheck distclean \
+	distclean-generic distclean-hdr distclean-libtool \
+	distclean-tags distcleancheck distdir distuninstallcheck dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-pkgconfigDATA install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	installdirs-am maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-pkgconfigDATA
 
 dist-hook: gen-ChangeLog gen-AUTHORS
 
 .PHONY: gen-ChangeLog
 gen-ChangeLog:
-	$(AM_V_GEN)if test -d .git; then		\
+	$(AM_V_GEN)if test -d $(srcdir)/.git; then	\
 	  $(top_srcdir)/build-aux/gitlog-to-changelog	\
 	    --since=$(gen_start_date) > $(distdir)/cl-t;\
 	  rm -f $(distdir)/ChangeLog;			\
diff --git a/NEWS b/NEWS
index 51f83b6..3e6129f 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,29 @@
     GTK VNC News
     ============
 
+Sep 18, 2013: Release 0.5.3
+===========================
+
+New features:
+
+ o Support QEMU LED state extension
+
+Bug fixes:
+
+ o Time out connection attempt after 10 seconds
+ o Abort if out of memory when mmap'ing coroutine stack
+ o Stop leaking coroutine stack memory
+ o Improve perfornmance of ZRLE encoding by avoiding memmove
+ o Only trigger keyboard grab sequence upon key release to
+   allow modifiers to go to the remote server
+ o Avoid busy loop upon I/O error which follows blocking I/O,
+   commonly seen when a server drops the connection
+ o Fix handling of --no-undefined flag
+ o Don't break implicit pointer grab from mouse clicks
+ o Don't drop mouse events that are out of bounds, clamp their
+   coordinates instead
+ o Show how to block all accelerators in gvncviewer demo program
+
 Feb 22, 2013: Release 0.5.2
 ===========================
 
diff --git a/aclocal.m4 b/aclocal.m4
index 02bb3d6..675e3ed 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.12.2 -*- Autoconf -*-
+# generated automatically by aclocal 1.13.4 -*- Autoconf -*-
 
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -11,6 +11,7 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],,
@@ -513,7 +514,7 @@ AC_DEFUN([GNOME_MAINTAINER_MODE_DEFINES],
 ])
 
 # nls.m4 serial 5 (gettext-0.18)
-dnl Copyright (C) 1995-2003, 2005-2006, 2008-2010 Free Software Foundation,
+dnl Copyright (C) 1995-2003, 2005-2006, 2008-2013 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -745,24 +746,22 @@ m4_popdef([pkg_default])
 m4_popdef([pkg_description])
 ]) dnl PKG_NOARCH_INSTALLDIR
 
-# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+# Copyright (C) 2002-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 8
-
 # AM_AUTOMAKE_VERSION(VERSION)
 # ----------------------------
 # Automake X.Y traces this macro to ensure aclocal.m4 has been
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.12'
+[am__api_version='1.13'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.12.2], [],
+m4_if([$1], [1.13.4], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -778,21 +777,19 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.12.2])dnl
+[AM_AUTOMAKE_VERSION([1.13.4])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
 # $ac_aux_dir to '$srcdir/foo'.  In other projects, it is set to
 # '$srcdir', '$srcdir/..', or '$srcdir/../..'.
@@ -840,14 +837,12 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2012 Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 10
-
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
 # Define a conditional.
@@ -873,13 +868,12 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 17
 
 # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -1065,19 +1059,18 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
 [{
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -1106,7 +1099,7 @@ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
@@ -1142,14 +1135,12 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 19
-
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
 
@@ -1165,7 +1156,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 # arguments mandatory, and then we can depend on a new Autoconf
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.62])dnl
+[AC_PREREQ([2.65])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -1195,8 +1186,7 @@ AC_SUBST([CYGPATH_W])
 dnl Distinguish between old-style and new-style calls.
 m4_ifval([$2],
 [AC_DIAGNOSE([obsolete],
-[$0: two- and three-arguments forms are deprecated.  For more info, see:
-http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation])
+             [$0: two- and three-arguments forms are deprecated.])
 m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
  AC_SUBST([PACKAGE], [$1])dnl
  AC_SUBST([VERSION], [$2])],
@@ -1250,18 +1240,15 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJC],
 		  [_AM_DEPENDENCIES([OBJC])],
 		  [m4_define([AC_PROG_OBJC],
 			     m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
-dnl Support for Objective C++ was only introduced in Autoconf 2.65,
-dnl but we still cater to Autoconf 2.62.
-m4_ifdef([AC_PROG_OBJCXX],
-[AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
 		  [_AM_DEPENDENCIES([OBJCXX])],
 		  [m4_define([AC_PROG_OBJCXX],
-			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])])dnl
+			     m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
 ])
-_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
-dnl The 'parallel-tests' driver may need to know about EXEEXT, so add the
-dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
-dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
 AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
@@ -1295,14 +1282,12 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 8
-
 # AM_PROG_INSTALL_SH
 # ------------------
 # Define $install_sh.
@@ -1318,14 +1303,12 @@ if test x"${install_sh}" != xset; then
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2012 Free Software Foundation, Inc.
+# Copyright (C) 2003-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # Check whether the underlying file-system supports filenames
 # with a leading dot.  For instance MS-DOS doesn't.
 AC_DEFUN([AM_SET_LEADING_DOT],
@@ -1342,14 +1325,12 @@ AC_SUBST([am__leading_dot])])
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 7
-
 # AM_MAINTAINER_MODE([DEFAULT-MODE])
 # ----------------------------------
 # Control maintainer-specific portions of Makefiles.
@@ -1377,18 +1358,14 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
 ]
 )
 
-AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
-
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
-
 # AM_MAKE_INCLUDE()
 # -----------------
 # Check to see how make treats includes.
@@ -1431,14 +1408,12 @@ AC_MSG_RESULT([$_am_result])
 rm -f confinc confmf
 ])
 
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
-
 # AM_PROG_CC_C_O
 # --------------
 # Like AC_PROG_CC_C_O, but changed for automake.
@@ -1467,14 +1442,12 @@ m4_define([AC_PROG_CC],
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2012 Free Software Foundation, Inc.
+# Copyright (C) 1997-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 7
-
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
 AC_DEFUN([AM_MISSING_PROG],
@@ -1482,11 +1455,10 @@ AC_DEFUN([AM_MISSING_PROG],
 $1=${$1-"${am_missing_run}$2"}
 AC_SUBST($1)])
 
-
 # AM_MISSING_HAS_RUN
 # ------------------
-# Define MISSING if not defined so far and test if it supports --run.
-# If it does, set am_missing_run to use it, otherwise, to nothing.
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
 AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 AC_REQUIRE_AUX_FILE([missing])dnl
@@ -1499,8 +1471,8 @@ if test x"${MISSING+set}" != xset; then
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
   AC_MSG_WARN(['missing' script is too old or missing])
@@ -1509,14 +1481,12 @@ fi
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 6
-
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
 AC_DEFUN([_AM_MANGLE_OPTION],
@@ -1540,13 +1510,12 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 9
 
 # AM_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
 # ---------------------------------------------------------------------------
@@ -1575,7 +1544,7 @@ AC_DEFUN([AM_PATH_PYTHON],
   dnl Find a Python interpreter.  Python versions prior to 2.0 are not
   dnl supported. (2.0 was released on October 16, 2000).
   m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
-[python python2 python3 python3.2 python3.1 python3.0 python2.7 dnl
+[python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7 dnl
  python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0])
 
   AC_ARG_VAR([PYTHON], [the Python interpreter])
@@ -1644,6 +1613,25 @@ AC_DEFUN([AM_PATH_PYTHON],
     [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
   AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
 
+  # Just factor out some code duplication.
+  am_python_setup_sysconfig="\
+import sys
+# Prefer sysconfig over distutils.sysconfig, for better compatibility
+# with python 3.x.  See automake bug#10227.
+try:
+    import sysconfig
+except ImportError:
+    can_use_sysconfig = 0
+else:
+    can_use_sysconfig = 1
+# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
+# <https://github.com/pypa/virtualenv/issues/118>
+try:
+    from platform import python_implementation
+    if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7':
+        can_use_sysconfig = 0
+except ImportError:
+    pass"
 
   dnl Set up 4 directories:
 
@@ -1660,7 +1648,14 @@ AC_DEFUN([AM_PATH_PYTHON],
      else
        am_py_prefix=$prefix
      fi
-     am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null`
+     am_cv_python_pythondir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
      case $am_cv_python_pythondir in
      $am_py_prefix*)
        am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
@@ -1695,7 +1690,14 @@ AC_DEFUN([AM_PATH_PYTHON],
      else
        am_py_exec_prefix=$exec_prefix
      fi
-     am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null`
+     am_cv_python_pyexecdir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
      case $am_cv_python_pyexecdir in
      $am_py_exec_prefix*)
        am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
@@ -1743,14 +1745,12 @@ for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
 sys.exit(sys.hexversion < minverhex)"
   AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 1
-
 # AM_RUN_LOG(COMMAND)
 # -------------------
 # Run COMMAND, save the exit status in ac_status, and log it.
@@ -1764,14 +1764,12 @@ AC_DEFUN([AM_RUN_LOG],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 9
-
 # AM_SANITY_CHECK
 # ---------------
 AC_DEFUN([AM_SANITY_CHECK],
@@ -1847,14 +1845,12 @@ AC_CONFIG_COMMANDS_PRE(
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2012 Free Software Foundation, Inc.
+# Copyright (C) 2009-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
-
 # AM_SILENT_RULES([DEFAULT])
 # --------------------------
 # Enable less verbose build rules; with the default set to DEFAULT
@@ -1909,14 +1905,12 @@ AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 2001-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
-
 # AM_PROG_INSTALL_STRIP
 # ---------------------
 # One issue with vendor 'install' (even GNU) is that you can't
@@ -1939,14 +1933,12 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2012 Free Software Foundation, Inc.
+# Copyright (C) 2006-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
-
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
@@ -1960,14 +1952,12 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2012 Free Software Foundation, Inc.
+# Copyright (C) 2004-2013 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
-
 # _AM_PROG_TAR(FORMAT)
 # --------------------
 # Check how to create a tarball in format FORMAT.
@@ -1981,76 +1971,114 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 # Substitute a variable $(am__untar) that extract such
 # a tarball read from stdin.
 #     $(am__untar) < result.tar
+#
 AC_DEFUN([_AM_PROG_TAR],
 [# Always define AMTAR for backward compatibility.  Yes, it's still used
 # in the wild :-(  We should find a proper way to deprecate it ...
 AC_SUBST([AMTAR], ['$${TAR-tar}'])
-m4_if([$1], [v7],
-     [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
-     [m4_case([$1], [ustar],, [pax],,
-              [m4_fatal([Unknown tar format])])
-AC_MSG_CHECKING([how to create a $1 tar archive])
-# Loop over all known methods to create a tar archive until one works.
+
+# We'll loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
-# Do not fold the above two line into one, because Tru64 sh and
-# Solaris sh will not grok spaces in the rhs of '-'.
-for _am_tool in $_am_tools
-do
-  case $_am_tool in
-  gnutar)
-    for _am_tar in tar gnutar gtar;
-    do
-      AM_RUN_LOG([$_am_tar --version]) && break
-    done
-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
-    am__untar="$_am_tar -xf -"
-    ;;
-  plaintar)
-    # Must skip GNU tar: if it does not support --format= it doesn't create
-    # ustar tarball either.
-    (tar --version) >/dev/null 2>&1 && continue
-    am__tar='tar chf - "$$tardir"'
-    am__tar_='tar chf - "$tardir"'
-    am__untar='tar xf -'
-    ;;
-  pax)
-    am__tar='pax -L -x $1 -w "$$tardir"'
-    am__tar_='pax -L -x $1 -w "$tardir"'
-    am__untar='pax -r'
-    ;;
-  cpio)
-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
-    am__untar='cpio -i -H $1 -d'
-    ;;
-  none)
-    am__tar=false
-    am__tar_=false
-    am__untar=false
-    ;;
-  esac
 
-  # If the value was cached, stop now.  We just wanted to have am__tar
-  # and am__untar set.
-  test -n "${am_cv_prog_tar_$1}" && break
+m4_if([$1], [v7],
+  [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+  [m4_case([$1],
+    [ustar],
+     [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+      # There is notably a 21 bits limit for the UID and the GID.  In fact,
+      # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+      # and bug#13588).
+      am_max_uid=2097151 # 2^21 - 1
+      am_max_gid=$am_max_uid
+      # The $UID and $GID variables are not portable, so we need to resort
+      # to the POSIX-mandated id(1) utility.  Errors in the 'id' calls
+      # below are definitely unexpected, so allow the users to see them
+      # (that is, avoid stderr redirection).
+      am_uid=`id -u || echo unknown`
+      am_gid=`id -g || echo unknown`
+      AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+      if test $am_uid -le $am_max_uid; then
+         AC_MSG_RESULT([yes])
+      else
+         AC_MSG_RESULT([no])
+         _am_tools=none
+      fi
+      AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+      if test $am_gid -le $am_max_gid; then
+         AC_MSG_RESULT([yes])
+      else
+        AC_MSG_RESULT([no])
+        _am_tools=none
+      fi],
+
+  [pax],
+    [],
+
+  [m4_fatal([Unknown tar format])])
+
+  AC_MSG_CHECKING([how to create a $1 tar archive])
+
+  # Go ahead even if we have the value already cached.  We do so because we
+  # need to set the values for the 'am__tar' and 'am__untar' variables.
+  _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+  for _am_tool in $_am_tools; do
+    case $_am_tool in
+    gnutar)
+      for _am_tar in tar gnutar gtar; do
+        AM_RUN_LOG([$_am_tar --version]) && break
+      done
+      am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+      am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+      am__untar="$_am_tar -xf -"
+      ;;
+    plaintar)
+      # Must skip GNU tar: if it does not support --format= it doesn't create
+      # ustar tarball either.
+      (tar --version) >/dev/null 2>&1 && continue
+      am__tar='tar chf - "$$tardir"'
+      am__tar_='tar chf - "$tardir"'
+      am__untar='tar xf -'
+      ;;
+    pax)
+      am__tar='pax -L -x $1 -w "$$tardir"'
+      am__tar_='pax -L -x $1 -w "$tardir"'
+      am__untar='pax -r'
+      ;;
+    cpio)
+      am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+      am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+      am__untar='cpio -i -H $1 -d'
+      ;;
+    none)
+      am__tar=false
+      am__tar_=false
+      am__untar=false
+      ;;
+    esac
 
-  # tar/untar a dummy directory, and stop if the command works
-  rm -rf conftest.dir
-  mkdir conftest.dir
-  echo GrepMe > conftest.dir/file
-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    # If the value was cached, stop now.  We just wanted to have am__tar
+    # and am__untar set.
+    test -n "${am_cv_prog_tar_$1}" && break
+
+    # tar/untar a dummy directory, and stop if the command works.
+    rm -rf conftest.dir
+    mkdir conftest.dir
+    echo GrepMe > conftest.dir/file
+    AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+    rm -rf conftest.dir
+    if test -s conftest.tar; then
+      AM_RUN_LOG([$am__untar <conftest.tar])
+      AM_RUN_LOG([cat conftest.dir/file])
+      grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+    fi
+  done
   rm -rf conftest.dir
-  if test -s conftest.tar; then
-    AM_RUN_LOG([$am__untar <conftest.tar])
-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
-  fi
-done
-rm -rf conftest.dir
 
-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+  AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+  AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
 AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
diff --git a/build-aux/compile b/build-aux/compile
index 7b4a9a7..531136b 100755
--- a/build-aux/compile
+++ b/build-aux/compile
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-03-05.13; # UTC
+scriptversion=2012-10-14.11; # UTC
 
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey at cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -112,6 +112,11 @@ func_cl_dashl ()
       lib=$dir/$lib.lib
       break
     fi
+    if test -f "$dir/lib$lib.a"; then
+      found=yes
+      lib=$dir/lib$lib.a
+      break
+    fi
   done
   IFS=$save_IFS
 
diff --git a/build-aux/config.guess b/build-aux/config.guess
index c0adba9..b79252d 100755
--- a/build-aux/config.guess
+++ b/build-aux/config.guess
@@ -1,14 +1,12 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012 Free Software Foundation, Inc.
+#   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2012-06-10'
+timestamp='2013-06-10'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful, but
@@ -22,19 +20,17 @@ timestamp='2012-06-10'
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner.  Please send patches (context
-# diff format) to <config-patches at gnu.org> and include a ChangeLog
-# entry.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 #
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
+# Originally written by Per Bothner.
 #
 # You can get the latest version of this script from:
 # http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+#
+# Please send patches with a ChangeLog entry to config-patches at gnu.org.
+
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -54,9 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2013 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -138,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+	# If the system lacks a compiler, then just pick glibc.
+	# We could probably try harder.
+	LIBC=gnu
+
+	eval $set_cc_for_build
+	cat <<-EOF > $dummy.c
+	#include <features.h>
+	#if defined(__UCLIBC__)
+	LIBC=uclibc
+	#elif defined(__dietlibc__)
+	LIBC=dietlibc
+	#else
+	LIBC=gnu
+	#endif
+	EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+	;;
+esac
+
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -200,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
 	echo "${machine}-${os}${release}"
 	exit ;;
+    *:Bitrig:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+	exit ;;
     *:OpenBSD:*:*)
 	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
 	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
@@ -302,7 +321,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
 	echo arm-acorn-riscix${UNAME_RELEASE}
 	exit ;;
-    arm:riscos:*:*|arm:RISCOS:*:*)
+    arm*:riscos:*:*|arm*:RISCOS:*:*)
 	echo arm-unknown-riscos
 	exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
@@ -801,6 +820,9 @@ EOF
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
 	exit ;;
+    *:MINGW64*:*)
+	echo ${UNAME_MACHINE}-pc-mingw64
+	exit ;;
     *:MINGW*:*)
 	echo ${UNAME_MACHINE}-pc-mingw32
 	exit ;;
@@ -852,21 +874,21 @@ EOF
 	exit ;;
     *:GNU:*:*)
 	# the GNU system
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
 	exit ;;
     *:GNU/*:*:*)
 	# other systems with GNU libc and userland
-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
 	exit ;;
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
     aarch64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     aarch64_be:Linux:*:*)
 	UNAME_MACHINE=aarch64_be
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     alpha:Linux:*:*)
 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -879,59 +901,54 @@ EOF
 	  EV68*) UNAME_MACHINE=alphaev68 ;;
 	esac
 	objdump --private-headers /bin/sh | grep -q ld.so.1
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    arc:Linux:*:* | arceb:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     arm*:Linux:*:*)
 	eval $set_cc_for_build
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
 	    | grep -q __ARM_EABI__
 	then
-	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	else
 	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
 		| grep -q __ARM_PCS_VFP
 	    then
-		echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
 	    else
-		echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
 	    fi
 	fi
 	exit ;;
     avr32*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     cris:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-gnu
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
 	exit ;;
     crisv32:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-gnu
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
 	exit ;;
     frv:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     hexagon:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     i*86:Linux:*:*)
-	LIBC=gnu
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+	echo ${UNAME_MACHINE}-pc-linux-${LIBC}
 	exit ;;
     ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
 	eval $set_cc_for_build
@@ -950,54 +967,63 @@ EOF
 	#endif
 EOF
 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
 	;;
+    or1k:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
     or32:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     padre:Linux:*:*)
-	echo sparc-unknown-linux-gnu
+	echo sparc-unknown-linux-${LIBC}
 	exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
+	echo hppa64-unknown-linux-${LIBC}
 	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
-	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
-	  *)    echo hppa-unknown-linux-gnu ;;
+	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+	  *)    echo hppa-unknown-linux-${LIBC} ;;
 	esac
 	exit ;;
     ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
+	echo powerpc64-unknown-linux-${LIBC}
 	exit ;;
     ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
+	echo powerpc-unknown-linux-${LIBC}
+	exit ;;
+    ppc64le:Linux:*:*)
+	echo powerpc64le-unknown-linux-${LIBC}
+	exit ;;
+    ppcle:Linux:*:*)
+	echo powerpcle-unknown-linux-${LIBC}
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
+	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
 	exit ;;
     sh64*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     tile*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     vax:Linux:*:*)
-	echo ${UNAME_MACHINE}-dec-linux-gnu
+	echo ${UNAME_MACHINE}-dec-linux-${LIBC}
 	exit ;;
     x86_64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     xtensa*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1201,6 +1227,9 @@ EOF
     BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
 	echo i586-pc-haiku
 	exit ;;
+    x86_64:Haiku:*:*)
+	echo x86_64-unknown-haiku
+	exit ;;
     SX-4:SUPER-UX:*:*)
 	echo sx4-nec-superux${UNAME_RELEASE}
 	exit ;;
@@ -1227,19 +1256,21 @@ EOF
 	exit ;;
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-	case $UNAME_PROCESSOR in
-	    i386)
-		eval $set_cc_for_build
-		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-		      grep IS_64BIT_ARCH >/dev/null
-		  then
-		      UNAME_PROCESSOR="x86_64"
-		  fi
-		fi ;;
-	    unknown) UNAME_PROCESSOR=powerpc ;;
-	esac
+	eval $set_cc_for_build
+	if test "$UNAME_PROCESSOR" = unknown ; then
+	    UNAME_PROCESSOR=powerpc
+	fi
+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		case $UNAME_PROCESSOR in
+		    i386) UNAME_PROCESSOR=x86_64 ;;
+		    powerpc) UNAME_PROCESSOR=powerpc64 ;;
+		esac
+	    fi
+	fi
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
 	exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
@@ -1330,9 +1361,6 @@ EOF
 	exit ;;
 esac
 
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
 eval $set_cc_for_build
 cat >$dummy.c <<EOF
 #ifdef _SEQUENT_
diff --git a/build-aux/config.sub b/build-aux/config.sub
index 6205f84..c765b34 100755
--- a/build-aux/config.sub
+++ b/build-aux/config.sub
@@ -1,24 +1,18 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012 Free Software Foundation, Inc.
+#   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2012-04-18'
+timestamp='2013-04-24'
 
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, see <http://www.gnu.org/licenses/>.
@@ -26,11 +20,12 @@ timestamp='2012-04-18'
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 
 
-# Please send patches to <config-patches at gnu.org>.  Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches at gnu.org.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
@@ -73,9 +68,7 @@ Report bugs and patches to <config-patches at gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2013 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -123,7 +116,7 @@ esac
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
   knetbsd*-gnu* | netbsd*-gnu* | \
   kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
@@ -156,7 +149,7 @@ case $os in
 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray | -microblaze)
+	-apple | -axis | -knuth | -cray | -microblaze*)
 		os=
 		basic_machine=$1
 		;;
@@ -259,8 +252,10 @@ case $basic_machine in
 	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
 	| am33_2.0 \
-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
-        | be32 | be64 \
+	| arc | arceb \
+	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+	| avr | avr32 \
+	| be32 | be64 \
 	| bfin \
 	| c4x | clipper \
 	| d10v | d30v | dlx | dsp16xx \
@@ -273,7 +268,7 @@ case $basic_machine in
 	| le32 | le64 \
 	| lm32 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | mcore | mep | metag \
+	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
@@ -291,16 +286,17 @@ case $basic_machine in
 	| mipsisa64r2 | mipsisa64r2el \
 	| mipsisa64sb1 | mipsisa64sb1el \
 	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipsr5900 | mipsr5900el \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
 	| moxie \
 	| mt \
 	| msp430 \
 	| nds32 | nds32le | nds32be \
-	| nios | nios2 \
+	| nios | nios2 | nios2eb | nios2el \
 	| ns16k | ns32k \
 	| open8 \
-	| or32 \
+	| or1k | or32 \
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle \
 	| pyramid \
@@ -370,7 +366,7 @@ case $basic_machine in
 	| aarch64-* | aarch64_be-* \
 	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
 	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
 	| avr-* | avr32-* \
 	| be32-* | be64-* \
@@ -389,7 +385,8 @@ case $basic_machine in
 	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+	| microblaze-* | microblazeel-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
@@ -407,12 +404,13 @@ case $basic_machine in
 	| mipsisa64r2-* | mipsisa64r2el-* \
 	| mipsisa64sb1-* | mipsisa64sb1el-* \
 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipsr5900-* | mipsr5900el-* \
 	| mipstx39-* | mipstx39el-* \
 	| mmix-* \
 	| mt-* \
 	| msp430-* \
 	| nds32-* | nds32le-* | nds32be-* \
-	| nios-* | nios2-* \
+	| nios-* | nios2-* | nios2eb-* | nios2el-* \
 	| none-* | np1-* | ns16k-* | ns32k-* \
 	| open8-* \
 	| orion-* \
@@ -788,9 +786,13 @@ case $basic_machine in
 		basic_machine=ns32k-utek
 		os=-sysv
 		;;
-	microblaze)
+	microblaze*)
 		basic_machine=microblaze-xilinx
 		;;
+	mingw64)
+		basic_machine=x86_64-pc
+		os=-mingw64
+		;;
 	mingw32)
 		basic_machine=i386-pc
 		os=-mingw32
@@ -1004,7 +1006,7 @@ case $basic_machine in
 		;;
 	ppc64)	basic_machine=powerpc64-unknown
 		;;
-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+	ppc64-* | ppc64p7-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
 		;;
 	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
 		basic_machine=powerpc64le-unknown
@@ -1019,7 +1021,11 @@ case $basic_machine in
 		basic_machine=i586-unknown
 		os=-pw32
 		;;
-	rdos)
+	rdos | rdos64)
+		basic_machine=x86_64-pc
+		os=-rdos
+		;;
+	rdos32)
 		basic_machine=i386-pc
 		os=-rdos
 		;;
@@ -1346,21 +1352,21 @@ case $os in
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
 	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
 	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-	      | -sym* | -kopensolaris* \
+	      | -sym* | -kopensolaris* | -plan9* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
 	      | -aos* | -aros* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-	      | -openbsd* | -solidbsd* \
+	      | -bitrig* | -openbsd* | -solidbsd* \
 	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
 	      | -chorusos* | -chorusrdb* | -cegcc* \
 	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -linux-android* \
-	      | -linux-newlib* | -linux-uclibc* \
+	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
 	      | -uxpv* | -beos* | -mpeix* | -udk* \
 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1492,9 +1498,6 @@ case $os in
 	-aros*)
 		os=-aros
 		;;
-	-kaos*)
-		os=-kaos
-		;;
 	-zvmoe)
 		os=-zvmoe
 		;;
@@ -1586,6 +1589,9 @@ case $basic_machine in
 	mips*-*)
 		os=-elf
 		;;
+	or1k-*)
+		os=-elf
+		;;
 	or32-*)
 		os=-coff
 		;;
diff --git a/build-aux/depcomp b/build-aux/depcomp
index debb6ff..4ebd5b3 100755
--- a/build-aux/depcomp
+++ b/build-aux/depcomp
@@ -1,9 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2012-03-27.16; # UTC
+scriptversion=2013-05-30.07; # UTC
 
-# Copyright (C) 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -27,9 +27,9 @@ scriptversion=2012-03-27.16; # UTC
 
 case $1 in
   '')
-     echo "$0: No command.  Try '$0 --help' for more information." 1>&2
-     exit 1;
-     ;;
+    echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+    exit 1;
+    ;;
   -h | --h*)
     cat <<\EOF
 Usage: depcomp [--help] [--version] PROGRAM [ARGS]
@@ -56,11 +56,65 @@ EOF
     ;;
 esac
 
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'.  Note that this directory component will
+# be either empty or ending with a '/' character.  This is deliberate.
+set_dir_from ()
+{
+  case $1 in
+    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+      *) dir=;;
+  esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+  echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+  # If the compiler actually managed to produce a dependency file,
+  # post-process it.
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form 'foo.o: dependency.h'.
+    # Do two passes, one to just change these to
+    #   $object: dependency.h
+    # and one to simply output
+    #   dependency.h:
+    # which is needed to avoid the deleted-header problem.
+    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+    } > "$depfile"
+    rm -f "$tmpdepfile"
+  else
+    make_dummy_depfile
+  fi
+}
+
 # A tabulation character.
 tab='	'
 # A newline character.
 nl='
 '
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
 
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
   echo "depcomp: Variables source, object and depmode must be set" 1>&2
@@ -74,6 +128,9 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
 
 rm -f "$tmpdepfile"
 
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
 # Some modes work just like other modes, but use different flags.  We
 # parameterize here, but still list the modes in the big case below,
 # to make depend.m4 easier to write.  Note that we *cannot* use a case
@@ -85,32 +142,32 @@ if test "$depmode" = hp; then
 fi
 
 if test "$depmode" = dashXmstdout; then
-   # This is just like dashmstdout with a different argument.
-   dashmflag=-xM
-   depmode=dashmstdout
+  # This is just like dashmstdout with a different argument.
+  dashmflag=-xM
+  depmode=dashmstdout
 fi
 
 cygpath_u="cygpath -u -f -"
 if test "$depmode" = msvcmsys; then
-   # This is just like msvisualcpp but w/o cygpath translation.
-   # Just convert the backslash-escaped backslashes to single forward
-   # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
-   depmode=msvisualcpp
+  # This is just like msvisualcpp but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvisualcpp
 fi
 
 if test "$depmode" = msvc7msys; then
-   # This is just like msvc7 but w/o cygpath translation.
-   # Just convert the backslash-escaped backslashes to single forward
-   # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
-   depmode=msvc7
+  # This is just like msvc7 but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvc7
 fi
 
 if test "$depmode" = xlc; then
-   # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
-   gccflag=-qmakedep=gcc,-MF
-   depmode=gcc
+  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+  gccflag=-qmakedep=gcc,-MF
+  depmode=gcc
 fi
 
 case "$depmode" in
@@ -133,8 +190,7 @@ gcc3)
   done
   "$@"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -142,13 +198,17 @@ gcc3)
   ;;
 
 gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
 ## There are various ways to get dependency output from gcc.  Here's
 ## why we pick this rather obscure method:
 ## - Don't want to use -MD because we'd like the dependencies to end
 ##   up in a subdir.  Having to rename by hand is ugly.
 ##   (We might end up doing this anyway to support other compilers.)
 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-##   -MM, not -M (despite what the docs say).
+##   -MM, not -M (despite what the docs say).  Also, it might not be
+##   supported by the other compilers which use the 'gcc' depmode.
 ## - Using -M directly means running the compiler twice (even worse
 ##   than renaming).
   if test -z "$gccflag"; then
@@ -156,15 +216,14 @@ gcc)
   fi
   "$@" -Wp,"$gccflag$tmpdepfile"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
+  # The second -e expression handles DOS-style file names with drive
+  # letters.
   sed -e 's/^[^:]*: / /' \
       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
 ## This next piece of magic avoids the "deleted header file" problem.
@@ -173,15 +232,15 @@ gcc)
 ## typically no way to rebuild the header).  We avoid this by adding
 ## dummy dependencies for each header file.  Too bad gcc doesn't do
 ## this for us directly.
-  tr ' ' "$nl" < "$tmpdepfile" |
 ## Some versions of gcc put a space before the ':'.  On the theory
 ## that the space means something, we add a space to the output as
 ## well.  hp depmode also adds that space, but also prefixes the VPATH
 ## to the object.  Take care to not repeat it in the output.
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
-      | sed -e 's/$/ :/' >> "$depfile"
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -199,8 +258,7 @@ sgi)
     "$@" -MDupdate "$tmpdepfile"
   fi
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -208,7 +266,6 @@ sgi)
 
   if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
     echo "$object : \\" > "$depfile"
-
     # Clip off the initial element (the dependent).  Don't try to be
     # clever and replace this with sed code, as IRIX sed won't handle
     # lines with more than a fixed number of characters (4096 in
@@ -216,19 +273,15 @@ sgi)
     # the IRIX cc adds comments like '#:fec' to the end of the
     # dependency line.
     tr ' ' "$nl" < "$tmpdepfile" \
-    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-    tr "$nl" ' ' >> "$depfile"
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+      | tr "$nl" ' ' >> "$depfile"
     echo >> "$depfile"
-
     # The second pass generates a dummy entry for each header file.
     tr ' ' "$nl" < "$tmpdepfile" \
-   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
-   >> "$depfile"
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+      >> "$depfile"
   else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
+    make_dummy_depfile
   fi
   rm -f "$tmpdepfile"
   ;;
@@ -246,9 +299,8 @@ aix)
   # current directory.  Also, the AIX compiler puts '$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.u
     tmpdepfile2=$base.u
@@ -261,9 +313,7 @@ aix)
     "$@" -M
   fi
   stat=$?
-
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
     exit $stat
   fi
@@ -272,65 +322,113 @@ aix)
   do
     test -f "$tmpdepfile" && break
   done
-  if test -f "$tmpdepfile"; then
-    # Each line is of the form 'foo.o: dependent.h'.
-    # Do two passes, one to just change these to
-    # '$object: dependent.h' and one to simply 'dependent.h:'.
-    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-    sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-  else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
+  aix_post_process_depfile
+  ;;
+
+tcc)
+  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+  # FIXME: That version still under development at the moment of writing.
+  #        Make that this statement remains true also for stable, released
+  #        versions.
+  # It will wrap lines (doesn't matter whether long or short) with a
+  # trailing '\', as in:
+  #
+  #   foo.o : \
+  #    foo.c \
+  #    foo.h \
+  #
+  # It will put a trailing '\' even on the last line, and will use leading
+  # spaces rather than leading tabs (at least since its commit 0394caf7
+  # "Emit spaces for -MD").
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
   fi
+  rm -f "$depfile"
+  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+  # We have to change lines of the first kind to '$object: \'.
+  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+  # And for each line of the second kind, we have to emit a 'dep.h:'
+  # dummy dependency, to avoid the deleted-header problem.
+  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
-icc)
-  # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
-  # However on
-  #    $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
-  # ICC 7.0 will fill foo.d with something like
-  #    foo.o: sub/foo.c
-  #    foo.o: sub/foo.h
-  # which is wrong.  We want
-  #    sub/foo.o: sub/foo.c
-  #    sub/foo.o: sub/foo.h
-  #    sub/foo.c:
-  #    sub/foo.h:
-  # ICC 7.1 will output
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file.  A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+  # Portland's C compiler understands '-MD'.
+  # Will always output deps to 'file.d' where file is the root name of the
+  # source file under compilation, even if file resides in a subdirectory.
+  # The object file name does not affect the name of the '.d' file.
+  # pgcc 10.2 will output
   #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using '\':
+  # and will wrap long lines using '\' :
   #    foo.o: sub/foo.c ... \
   #     sub/foo.h ... \
   #     ...
-  # tcc 0.9.26 (FIXME still under development at the moment of writing)
-  # will emit a similar output, but also prepend the continuation lines
-  # with horizontal tabulation characters.
-  "$@" -MD -MF "$tmpdepfile"
-  stat=$?
-  if test $stat -eq 0; then :
-  else
+  set_dir_from "$object"
+  # Use the source, not the object, to determine the base name, since
+  # that's sadly what pgcc will do too.
+  set_base_from "$source"
+  tmpdepfile=$base.d
+
+  # For projects that build the same source file twice into different object
+  # files, the pgcc approach of using the *source* file root name can cause
+  # problems in parallel builds.  Use a locking strategy to avoid stomping on
+  # the same $tmpdepfile.
+  lockdir=$base.d-lock
+  trap "
+    echo '$0: caught signal, cleaning up...' >&2
+    rmdir '$lockdir'
+    exit 1
+  " 1 2 13 15
+  numtries=100
+  i=$numtries
+  while test $i -gt 0; do
+    # mkdir is a portable test-and-set.
+    if mkdir "$lockdir" 2>/dev/null; then
+      # This process acquired the lock.
+      "$@" -MD
+      stat=$?
+      # Release the lock.
+      rmdir "$lockdir"
+      break
+    else
+      # If the lock is being held by a different process, wait
+      # until the winning process is done or we timeout.
+      while test -d "$lockdir" && test $i -gt 0; do
+        sleep 1
+        i=`expr $i - 1`
+      done
+    fi
+    i=`expr $i - 1`
+  done
+  trap - 1 2 13 15
+  if test $i -le 0; then
+    echo "$0: failed to acquire lock after $numtries attempts" >&2
+    echo "$0: check lockdir '$lockdir'" >&2
+    exit 1
+  fi
+
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
   rm -f "$depfile"
-  # Each line is of the form 'foo.o: dependent.h',
-  # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
   # Do two passes, one to just change these to
-  # '$object: dependent.h' and one to simply 'dependent.h:'.
-  sed -e "s/^[ $tab][ $tab]*/  /" -e "s,^[^:]*:,$object :," \
-    < "$tmpdepfile" > "$depfile"
-  sed '
-    s/[ '"$tab"'][ '"$tab"']*/ /g
-    s/^ *//
-    s/ *\\*$//
-    s/^[^:]*: *//
-    /^$/d
-    /:$/d
-    s/$/ :/
-  ' < "$tmpdepfile" >> "$depfile"
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -341,9 +439,8 @@ hp2)
   # 'foo.d', which lands next to the object file, wherever that
   # happens to be.
   # Much of this is similar to the tru64 case; see comments there.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from  "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.d
     tmpdepfile2=$dir.libs/$base.d
@@ -354,8 +451,7 @@ hp2)
     "$@" +Maked
   fi
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
      rm -f "$tmpdepfile1" "$tmpdepfile2"
      exit $stat
   fi
@@ -365,76 +461,61 @@ hp2)
     test -f "$tmpdepfile" && break
   done
   if test -f "$tmpdepfile"; then
-    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
+    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
     # Add 'dependent.h:' lines.
     sed -ne '2,${
-	       s/^ *//
-	       s/ \\*$//
-	       s/$/:/
-	       p
-	     }' "$tmpdepfile" >> "$depfile"
+               s/^ *//
+               s/ \\*$//
+               s/$/:/
+               p
+             }' "$tmpdepfile" >> "$depfile"
   else
-    echo "#dummy" > "$depfile"
+    make_dummy_depfile
   fi
   rm -f "$tmpdepfile" "$tmpdepfile2"
   ;;
 
 tru64)
-   # The Tru64 compiler uses -MD to generate dependencies as a side
-   # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
-   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-   # dependencies in 'foo.d' instead, so we check for that too.
-   # Subdirectories are respected.
-   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-   test "x$dir" = "x$object" && dir=
-   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-
-   if test "$libtool" = yes; then
-      # With Tru64 cc, shared objects can also be used to make a
-      # static library.  This mechanism is used in libtool 1.4 series to
-      # handle both shared and static libraries in a single compilation.
-      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
-      #
-      # With libtool 1.5 this exception was removed, and libtool now
-      # generates 2 separate objects for the 2 libraries.  These two
-      # compilations output dependencies in $dir.libs/$base.o.d and
-      # in $dir$base.o.d.  We have to check for both files, because
-      # one of the two compilations can be disabled.  We should prefer
-      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
-      # automatically cleaned when .libs/ is deleted, while ignoring
-      # the former would cause a distcleancheck panic.
-      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
-      tmpdepfile2=$dir$base.o.d          # libtool 1.5
-      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
-      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
-      "$@" -Wc,-MD
-   else
-      tmpdepfile1=$dir$base.o.d
-      tmpdepfile2=$dir$base.d
-      tmpdepfile3=$dir$base.d
-      tmpdepfile4=$dir$base.d
-      "$@" -MD
-   fi
-
-   stat=$?
-   if test $stat -eq 0; then :
-   else
-      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-      exit $stat
-   fi
-
-   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-   do
-     test -f "$tmpdepfile" && break
-   done
-   if test -f "$tmpdepfile"; then
-      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-   else
-      echo "#dummy" > "$depfile"
-   fi
-   rm -f "$tmpdepfile"
-   ;;
+  # The Tru64 compiler uses -MD to generate dependencies as a side
+  # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+  # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+  # dependencies in 'foo.d' instead, so we check for that too.
+  # Subdirectories are respected.
+  set_dir_from  "$object"
+  set_base_from "$object"
+
+  if test "$libtool" = yes; then
+    # Libtool generates 2 separate objects for the 2 libraries.  These
+    # two compilations output dependencies in $dir.libs/$base.o.d and
+    # in $dir$base.o.d.  We have to check for both files, because
+    # one of the two compilations can be disabled.  We should prefer
+    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+    # automatically cleaned when .libs/ is deleted, while ignoring
+    # the former would cause a distcleancheck panic.
+    tmpdepfile1=$dir$base.o.d          # libtool 1.5
+    tmpdepfile2=$dir.libs/$base.o.d    # Likewise.
+    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504
+    "$@" -Wc,-MD
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    tmpdepfile3=$dir$base.d
+    "$@" -MD
+  fi
+
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  # Same post-processing that is required for AIX mode.
+  aix_post_process_depfile
+  ;;
 
 msvc7)
   if test "$libtool" = yes; then
@@ -445,8 +526,7 @@ msvc7)
   "$@" $showIncludes > "$tmpdepfile"
   stat=$?
   grep -v '^Note: including file: ' "$tmpdepfile"
-  if test "$stat" = 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -472,6 +552,7 @@ $ {
   G
   p
 }' >> "$depfile"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
   rm -f "$tmpdepfile"
   ;;
 
@@ -523,13 +604,14 @@ dashmstdout)
   # in the target name.  This is to cope with DOS-style filenames:
   # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
   "$@" $dashmflag |
-    sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
+    sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
-  tr ' ' "$nl" < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this sed invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -582,10 +664,12 @@ makedepend)
   # makedepend may prepend the VPATH from the source file name to the object.
   # No need to regex-escape $object, excess matching of '.' is harmless.
   sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
-  sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process the last invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed '1,2d' "$tmpdepfile" \
+    | tr ' ' "$nl" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile" "$tmpdepfile".bak
   ;;
 
@@ -621,10 +705,10 @@ cpp)
     esac
   done
 
-  "$@" -E |
-    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
-    sed '$ s: \\$::' > "$tmpdepfile"
+  "$@" -E \
+    | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+    | sed '$ s: \\$::' > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
   cat < "$tmpdepfile" >> "$depfile"
@@ -656,15 +740,15 @@ msvisualcpp)
       shift
       ;;
     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
-	set fnord "$@"
-	shift
-	shift
-	;;
+        set fnord "$@"
+        shift
+        shift
+        ;;
     *)
-	set fnord "$@" "$arg"
-	shift
-	shift
-	;;
+        set fnord "$@" "$arg"
+        shift
+        shift
+        ;;
     esac
   done
   "$@" -E 2>/dev/null |
diff --git a/build-aux/missing b/build-aux/missing
index 9a55648..cdea514 100755
--- a/build-aux/missing
+++ b/build-aux/missing
@@ -1,10 +1,10 @@
 #! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2012-01-06.18; # UTC
+scriptversion=2012-06-26.16; # UTC
 
-# Copyright (C) 1996-2012 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -29,61 +29,33 @@ if test $# -eq 0; then
   exit 1
 fi
 
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, 'missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
-  configure_ac=configure.ac
-else
-  configure_ac=configure.in
-fi
+case $1 in
 
-msg="missing on your system"
+  --is-lightweight)
+    # Used by our autoconf macros to check whether the available missing
+    # script is modern enough.
+    exit 0
+    ;;
 
-case $1 in
---run)
-  # Try to run requested program, and just exit if it succeeds.
-  run=
-  shift
-  "$@" && exit 0
-  # Exit code 63 means version mismatch.  This often happens
-  # when the user try to use an ancient version of a tool on
-  # a file that requires a minimum version.  In this case we
-  # we should proceed has if the program had been absent, or
-  # if --run hadn't been passed.
-  if test $? = 63; then
-    run=:
-    msg="probably too old"
-  fi
-  ;;
+  --run)
+    # Back-compat with the calling convention used by older automake.
+    shift
+    ;;
 
   -h|--h|--he|--hel|--help)
     echo "\
 $0 [OPTION]... PROGRAM [ARGUMENT]...
 
-Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
 
 Options:
   -h, --help      display this help and exit
   -v, --version   output version information and exit
-  --run           try to run the given command, and emulate it if it fails
 
 Supported PROGRAM values:
-  aclocal      touch file 'aclocal.m4'
-  autoconf     touch file 'configure'
-  autoheader   touch file 'config.h.in'
-  autom4te     touch the output file, or create a stub one
-  automake     touch all 'Makefile.in' files
-  bison        create 'y.tab.[ch]', if possible, from existing .[ch]
-  flex         create 'lex.yy.c', if possible, from existing .c
-  help2man     touch the output file
-  lex          create 'lex.yy.c', if possible, from existing .c
-  makeinfo     touch the output file
-  yacc         create 'y.tab.[ch]', if possible, from existing .[ch]
+  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
+  bison     yacc      flex         lex       help2man
 
 Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
 'g' are ignored when checking the name.
@@ -98,228 +70,141 @@ Send bug reports to <bug-automake at gnu.org>."
     ;;
 
   -*)
-    echo 1>&2 "$0: Unknown '$1' option"
+    echo 1>&2 "$0: unknown '$1' option"
     echo 1>&2 "Try '$0 --help' for more information"
     exit 1
     ;;
 
 esac
 
-# normalize program name to check for.
-program=`echo "$1" | sed '
-  s/^gnu-//; t
-  s/^gnu//; t
-  s/^g//; t'`
-
-# Now exit if we have it, but it failed.  Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program).  This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
-  lex*|yacc*)
-    # Not GNU programs, they don't have --version.
-    ;;
-
-  *)
-    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
-       # We have it, but it failed.
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       # Could not run --version or --help.  This is probably someone
-       # running '$TOOL --version' or '$TOOL --help' to check whether
-       # $TOOL exists and not knowing $TOOL uses missing.
-       exit 1
-    fi
-    ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
-  aclocal*)
-    echo 1>&2 "\
-WARNING: '$1' is $msg.  You should only need it if
-         you modified 'acinclude.m4' or '${configure_ac}'.  You might want
-         to install the Automake and Perl packages.  Grab them from
-         any GNU archive site."
-    touch aclocal.m4
-    ;;
-
-  autoconf*)
-    echo 1>&2 "\
-WARNING: '$1' is $msg.  You should only need it if
-         you modified '${configure_ac}'.  You might want to install the
-         Autoconf and GNU m4 packages.  Grab them from any GNU
-         archive site."
-    touch configure
-    ;;
-
-  autoheader*)
-    echo 1>&2 "\
-WARNING: '$1' is $msg.  You should only need it if
-         you modified 'acconfig.h' or '${configure_ac}'.  You might want
-         to install the Autoconf and GNU m4 packages.  Grab them
-         from any GNU archive site."
-    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
-    test -z "$files" && files="config.h"
-    touch_files=
-    for f in $files; do
-      case $f in
-      *:*) touch_files="$touch_files "`echo "$f" |
-				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
-      *) touch_files="$touch_files $f.in";;
-      esac
-    done
-    touch $touch_files
-    ;;
-
-  automake*)
-    echo 1>&2 "\
-WARNING: '$1' is $msg.  You should only need it if
-         you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'.
-         You might want to install the Automake and Perl packages.
-         Grab them from any GNU archive site."
-    find . -type f -name Makefile.am -print |
-	   sed 's/\.am$/.in/' |
-	   while read f; do touch "$f"; done
-    ;;
-
-  autom4te*)
-    echo 1>&2 "\
-WARNING: '$1' is needed, but is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.
-         You can get '$1' as part of Autoconf from any GNU
-         archive site."
-
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -f "$file"; then
-	touch $file
-    else
-	test -z "$file" || exec >$file
-	echo "#! /bin/sh"
-	echo "# Created by GNU Automake missing as a replacement of"
-	echo "#  $ $@"
-	echo "exit 0"
-	chmod +x $file
-	exit 1
-    fi
-    ;;
-
-  bison*|yacc*)
-    echo 1>&2 "\
-WARNING: '$1' $msg.  You should only need it if
-         you modified a '.y' file.  You may need the Bison package
-         in order for those modifications to take effect.  You can get
-         Bison from any GNU archive site."
-    rm -f y.tab.c y.tab.h
-    if test $# -ne 1; then
-        eval LASTARG=\${$#}
-	case $LASTARG in
-	*.y)
-	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-	    if test -f "$SRCFILE"; then
-	         cp "$SRCFILE" y.tab.c
-	    fi
-	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-	    if test -f "$SRCFILE"; then
-	         cp "$SRCFILE" y.tab.h
-	    fi
-	  ;;
-	esac
-    fi
-    if test ! -f y.tab.h; then
-	echo >y.tab.h
-    fi
-    if test ! -f y.tab.c; then
-	echo 'main() { return 0; }' >y.tab.c
-    fi
-    ;;
-
-  lex*|flex*)
-    echo 1>&2 "\
-WARNING: '$1' is $msg.  You should only need it if
-         you modified a '.l' file.  You may need the Flex package
-         in order for those modifications to take effect.  You can get
-         Flex from any GNU archive site."
-    rm -f lex.yy.c
-    if test $# -ne 1; then
-        eval LASTARG=\${$#}
-	case $LASTARG in
-	*.l)
-	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-	    if test -f "$SRCFILE"; then
-	         cp "$SRCFILE" lex.yy.c
-	    fi
-	  ;;
-	esac
-    fi
-    if test ! -f lex.yy.c; then
-	echo 'main() { return 0; }' >lex.yy.c
-    fi
-    ;;
-
-  help2man*)
-    echo 1>&2 "\
-WARNING: '$1' is $msg.  You should only need it if
-	 you modified a dependency of a manual page.  You may need the
-	 Help2man package in order for those modifications to take
-	 effect.  You can get Help2man from any GNU archive site."
-
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -f "$file"; then
-	touch $file
-    else
-	test -z "$file" || exec >$file
-	echo ".ab help2man is required to generate this page"
-	exit $?
-    fi
-    ;;
-
-  makeinfo*)
-    echo 1>&2 "\
-WARNING: '$1' is $msg.  You should only need it if
-         you modified a '.texi' or '.texinfo' file, or any other file
-         indirectly affecting the aspect of the manual.  The spurious
-         call might also be the consequence of using a buggy 'make' (AIX,
-         DU, IRIX).  You might want to install the Texinfo package or
-         the GNU make package.  Grab either from any GNU archive site."
-    # The file to touch is that specified with -o ...
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -z "$file"; then
-      # ... or it is the one specified with @setfilename ...
-      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '
-	/^@setfilename/{
-	  s/.* \([^ ]*\) *$/\1/
-	  p
-	  q
-	}' $infile`
-      # ... or it is derived from the source name (dir/f.texi becomes f.info)
-      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
-    fi
-    # If the file does not exist, the user really needs makeinfo;
-    # let's fail without touching anything.
-    test -f $file || exit 1
-    touch $file
-    ;;
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch.  This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+  msg="probably too old"
+elif test $st -eq 127; then
+  # Program was missing.
+  msg="missing on your system"
+else
+  # Program was found and executed, but failed.  Give up.
+  exit $st
+fi
 
-  *)
-    echo 1>&2 "\
-WARNING: '$1' is needed, and is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.  Check the 'README' file,
-         it often tells you about the needed prerequisites for installing
-         this package.  You may also peek at any GNU archive site, in case
-         some other package would contain this missing '$1' program."
-    exit 1
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+  case $1 in
+    aclocal|automake)
+      echo "The '$1' program is part of the GNU Automake package:"
+      echo "<$gnu_software_URL/automake>"
+      echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/autoconf>"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+    autoconf|autom4te|autoheader)
+      echo "The '$1' program is part of the GNU Autoconf package:"
+      echo "<$gnu_software_URL/autoconf/>"
+      echo "It also requires GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+  esac
+}
+
+give_advice ()
+{
+  # Normalize program name to check for.
+  normalized_program=`echo "$1" | sed '
+    s/^gnu-//; t
+    s/^gnu//; t
+    s/^g//; t'`
+
+  printf '%s\n' "'$1' is $msg."
+
+  configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+  case $normalized_program in
+    autoconf*)
+      echo "You should only need it if you modified 'configure.ac',"
+      echo "or m4 files included by it."
+      program_details 'autoconf'
+      ;;
+    autoheader*)
+      echo "You should only need it if you modified 'acconfig.h' or"
+      echo "$configure_deps."
+      program_details 'autoheader'
+      ;;
+    automake*)
+      echo "You should only need it if you modified 'Makefile.am' or"
+      echo "$configure_deps."
+      program_details 'automake'
+      ;;
+    aclocal*)
+      echo "You should only need it if you modified 'acinclude.m4' or"
+      echo "$configure_deps."
+      program_details 'aclocal'
+      ;;
+   autom4te*)
+      echo "You might have modified some maintainer files that require"
+      echo "the 'automa4te' program to be rebuilt."
+      program_details 'autom4te'
+      ;;
+    bison*|yacc*)
+      echo "You should only need it if you modified a '.y' file."
+      echo "You may want to install the GNU Bison package:"
+      echo "<$gnu_software_URL/bison/>"
+      ;;
+    lex*|flex*)
+      echo "You should only need it if you modified a '.l' file."
+      echo "You may want to install the Fast Lexical Analyzer package:"
+      echo "<$flex_URL>"
+      ;;
+    help2man*)
+      echo "You should only need it if you modified a dependency" \
+           "of a man page."
+      echo "You may want to install the GNU Help2man package:"
+      echo "<$gnu_software_URL/help2man/>"
     ;;
-esac
-
-exit 0
+    makeinfo*)
+      echo "You should only need it if you modified a '.texi' file, or"
+      echo "any other file indirectly affecting the aspect of the manual."
+      echo "You might want to install the Texinfo package:"
+      echo "<$gnu_software_URL/texinfo/>"
+      echo "The spurious makeinfo call might also be the consequence of"
+      echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+      echo "want to install GNU make:"
+      echo "<$gnu_software_URL/make/>"
+      ;;
+    *)
+      echo "You might have modified some files without having the proper"
+      echo "tools for further handling them.  Check the 'README' file, it"
+      echo "often tells you about the needed prerequisites for installing"
+      echo "this package.  You may also peek at any GNU archive site, in"
+      echo "case some other package contains this missing '$1' program."
+      ;;
+  esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+                       -e '2,$s/^/         /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
diff --git a/build-aux/mkinstalldirs b/build-aux/mkinstalldirs
deleted file mode 100755
index 55d537f..0000000
--- a/build-aux/mkinstalldirs
+++ /dev/null
@@ -1,162 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-
-scriptversion=2009-04-28.21; # UTC
-
-# Original author: Noah Friedman <friedman at prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain.
-#
-# This file is maintained in Automake, please report
-# bugs to <bug-automake at gnu.org> or send patches to
-# <automake-patches at gnu.org>.
-
-nl='
-'
-IFS=" ""	$nl"
-errstatus=0
-dirmode=
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
-
-Create each directory DIR (with mode MODE, if specified), including all
-leading file name components.
-
-Report bugs to <bug-automake at gnu.org>."
-
-# process command line arguments
-while test $# -gt 0 ; do
-  case $1 in
-    -h | --help | --h*)         # -h for help
-      echo "$usage"
-      exit $?
-      ;;
-    -m)                         # -m PERM arg
-      shift
-      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
-      dirmode=$1
-      shift
-      ;;
-    --version)
-      echo "$0 $scriptversion"
-      exit $?
-      ;;
-    --)                         # stop option processing
-      shift
-      break
-      ;;
-    -*)                         # unknown option
-      echo "$usage" 1>&2
-      exit 1
-      ;;
-    *)                          # first non-opt arg
-      break
-      ;;
-  esac
-done
-
-for file
-do
-  if test -d "$file"; then
-    shift
-  else
-    break
-  fi
-done
-
-case $# in
-  0) exit 0 ;;
-esac
-
-# Solaris 8's mkdir -p isn't thread-safe.  If you mkdir -p a/b and
-# mkdir -p a/c at the same time, both will detect that a is missing,
-# one will create a, then the other will try to create a and die with
-# a "File exists" error.  This is a problem when calling mkinstalldirs
-# from a parallel make.  We use --version in the probe to restrict
-# ourselves to GNU mkdir, which is thread-safe.
-case $dirmode in
-  '')
-    if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-      echo "mkdir -p -- $*"
-      exec mkdir -p -- "$@"
-    else
-      # On NextStep and OpenStep, the 'mkdir' command does not
-      # recognize any option.  It will interpret all options as
-      # directories to create, and then abort because '.' already
-      # exists.
-      test -d ./-p && rmdir ./-p
-      test -d ./--version && rmdir ./--version
-    fi
-    ;;
-  *)
-    if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
-       test ! -d ./--version; then
-      echo "mkdir -m $dirmode -p -- $*"
-      exec mkdir -m "$dirmode" -p -- "$@"
-    else
-      # Clean up after NextStep and OpenStep mkdir.
-      for d in ./-m ./-p ./--version "./$dirmode";
-      do
-        test -d $d && rmdir $d
-      done
-    fi
-    ;;
-esac
-
-for file
-do
-  case $file in
-    /*) pathcomp=/ ;;
-    *)  pathcomp= ;;
-  esac
-  oIFS=$IFS
-  IFS=/
-  set fnord $file
-  shift
-  IFS=$oIFS
-
-  for d
-  do
-    test "x$d" = x && continue
-
-    pathcomp=$pathcomp$d
-    case $pathcomp in
-      -*) pathcomp=./$pathcomp ;;
-    esac
-
-    if test ! -d "$pathcomp"; then
-      echo "mkdir $pathcomp"
-
-      mkdir "$pathcomp" || lasterr=$?
-
-      if test ! -d "$pathcomp"; then
-	errstatus=$lasterr
-      else
-	if test ! -z "$dirmode"; then
-	  echo "chmod $dirmode $pathcomp"
-	  lasterr=
-	  chmod "$dirmode" "$pathcomp" || lasterr=$?
-
-	  if test ! -z "$lasterr"; then
-	    errstatus=$lasterr
-	  fi
-	fi
-      fi
-    fi
-
-    pathcomp=$pathcomp/
-  done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/configure b/configure
index b335ce0..9e779d3 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gtk-vnc 0.5.2.
+# Generated by GNU Autoconf 2.69 for gtk-vnc 0.5.3.
 #
 # Report bugs to <https://bugzilla.gnome.org/enter_bug.cgi?product=gtk-vnc>.
 #
@@ -591,8 +591,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='gtk-vnc'
 PACKAGE_TARNAME='gtk-vnc'
-PACKAGE_VERSION='0.5.2'
-PACKAGE_STRING='gtk-vnc 0.5.2'
+PACKAGE_VERSION='0.5.3'
+PACKAGE_STRING='gtk-vnc 0.5.3'
 PACKAGE_BUGREPORT='https://bugzilla.gnome.org/enter_bug.cgi?product=gtk-vnc'
 PACKAGE_URL='http://live.gnome.org/gtk-vnc/'
 
@@ -764,10 +764,6 @@ GNUTLS_REQUIRED
 GDK_PIXBUF_REQUIRED
 GIO_REQUIRED
 GOBJECT_REQUIRED
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
 DISABLE_DEPRECATED
 MAINT
 MAINTAINER_MODE_FALSE
@@ -820,6 +816,10 @@ LIBTOOL
 OBJDUMP
 DLLTOOL
 AS
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
 am__untar
 am__tar
 AMTAR
@@ -884,6 +884,7 @@ SHELL'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
+enable_silent_rules
 enable_static
 enable_shared
 with_pic
@@ -893,7 +894,6 @@ with_gnu_ld
 with_sysroot
 enable_libtool_lock
 enable_maintainer_mode
-enable_silent_rules
 enable_nls
 with_gtk
 with_python
@@ -1486,7 +1486,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures gtk-vnc 0.5.2 to adapt to many kinds of systems.
+\`configure' configures gtk-vnc 0.5.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1556,7 +1556,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gtk-vnc 0.5.2:";;
+     short | recursive ) echo "Configuration of gtk-vnc 0.5.3:";;
    esac
   cat <<\_ACEOF
 
@@ -1564,6 +1564,8 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-silent-rules   less verbose build output (undo: "make V=1")
+  --disable-silent-rules  verbose build output (undo: "make V=0")
   --enable-static[=PKGS]  build static libraries [default=no]
   --enable-shared[=PKGS]  build shared libraries [default=yes]
   --enable-fast-install[=PKGS]
@@ -1576,8 +1578,6 @@ Optional Features:
   --enable-maintainer-mode
                           enable make rules and dependencies not useful (and
                           sometimes confusing) to the casual installer
-  --enable-silent-rules   less verbose build output (undo: "make V=1")
-  --disable-silent-rules  verbose build output (undo: "make V=0")
   --disable-nls           do not use Native Language Support
   --enable-werror         Use -Werror (if supported)
   --disable-rebuilds      disable all source autogeneration rules
@@ -1725,7 +1725,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gtk-vnc configure 0.5.2
+gtk-vnc configure 0.5.3
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2094,7 +2094,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by gtk-vnc $as_me 0.5.2, which was
+It was created by gtk-vnc $as_me 0.5.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2475,7 +2475,7 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 ac_config_headers="$ac_config_headers config.h"
 
 
-am__api_version='1.12'
+am__api_version='1.13'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -2659,8 +2659,8 @@ if test x"${MISSING+set}" != xset; then
   esac
 fi
 # Use eval to expand $SHELL
-if eval "$MISSING --run true"; then
-  am_missing_run="$MISSING --run "
+if eval "$MISSING --is-lightweight"; then
+  am_missing_run="$MISSING "
 else
   am_missing_run=
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
@@ -2900,6 +2900,45 @@ else
 fi
 rmdir .tst 2>/dev/null
 
+# Check whether --enable-silent-rules was given.
+if test "${enable_silent_rules+set}" = set; then :
+  enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+    *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
+if ${am_cv_make_support_nested_variables+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if $as_echo 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+	@$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+  am_cv_make_support_nested_variables=yes
+else
+  am_cv_make_support_nested_variables=no
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+$as_echo "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
 if test "`cd $srcdir && pwd`" != "`pwd`"; then
   # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
   # is not polluted with repeated "-I."
@@ -2922,7 +2961,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gtk-vnc'
- VERSION='0.5.2'
+ VERSION='0.5.3'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2962,6 +3001,10 @@ mkdir_p='$(MKDIR_P)'
 # in the wild :-(  We should find a proper way to deprecate it ...
 AMTAR='$${TAR-tar}'
 
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar  pax cpio none'
+
 am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
 
 
@@ -2970,6 +3013,7 @@ am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
 
 
 
+
 case `pwd` in
   *\ * | *\	*)
     { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
@@ -14656,7 +14700,7 @@ fi
 WITH_EXAMPLES=$withval
 
 
-NO_UNDEFINED_LDFLAGS=
+NO_UNDEFINED_FLAGS=
 VERSION_SCRIPT_FLAGS=
 USE_VERSION_DEFS=0
 case "$host" in
@@ -14667,11 +14711,12 @@ case "$host" in
     ;;
 
   *-*-cygwin*)
-    NO_UNDEFINED_LDFLAGS="-no-undefined"
+    NO_UNDEFINED_FLAGS="-no-undefined"
     ;;
 
   *)
-    NO_UNDEFINED_FLAGS="-Wl,--no-undefined"
+    `ld --help 2>&1 | grep -- --no-undefined >/dev/null` && \
+      NO_UNDEFINED_FLAGS="-Wl,--no-undefined"
     VERSION_SCRIPT_FLAGS=-Wl,--version-script=
     `ld --help 2>&1 | grep -- --version-script >/dev/null` || \
       VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,"
@@ -16287,7 +16332,7 @@ fi
 
         # Find any Python interpreter.
     if test -z "$PYTHON"; then
-      for ac_prog in python python2 python3 python3.2 python3.1 python3.0 python2.7  python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
+      for ac_prog in python python2 python3 python3.3 python3.2 python3.1 python3.0 python2.7  python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 python2.0
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -16373,6 +16418,25 @@ $as_echo "$am_cv_python_platform" >&6; }
   PYTHON_PLATFORM=$am_cv_python_platform
 
 
+  # Just factor out some code duplication.
+  am_python_setup_sysconfig="\
+import sys
+# Prefer sysconfig over distutils.sysconfig, for better compatibility
+# with python 3.x.  See automake bug#10227.
+try:
+    import sysconfig
+except ImportError:
+    can_use_sysconfig = 0
+else:
+    can_use_sysconfig = 1
+# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
+# <https://github.com/pypa/virtualenv/issues/118>
+try:
+    from platform import python_implementation
+    if python_implementation() == 'CPython' and sys.version[:3] == '2.7':
+        can_use_sysconfig = 0
+except ImportError:
+    pass"
 
 
             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $am_display_PYTHON script directory" >&5
@@ -16386,7 +16450,14 @@ else
      else
        am_py_prefix=$prefix
      fi
-     am_cv_python_pythondir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(0,0,prefix='$am_py_prefix'))" 2>/dev/null`
+     am_cv_python_pythondir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('purelib', vars={'base':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
      case $am_cv_python_pythondir in
      $am_py_prefix*)
        am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
@@ -16423,7 +16494,14 @@ else
      else
        am_py_exec_prefix=$exec_prefix
      fi
-     am_cv_python_pyexecdir=`$PYTHON -c "import sys; from distutils import sysconfig; sys.stdout.write(sysconfig.get_python_lib(1,0,prefix='$am_py_exec_prefix'))" 2>/dev/null`
+     am_cv_python_pyexecdir=`$PYTHON -c "
+$am_python_setup_sysconfig
+if can_use_sysconfig:
+    sitedir = sysconfig.get_path('platlib', vars={'platbase':'$am_py_prefix'})
+else:
+    from distutils import sysconfig
+    sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_prefix')
+sys.stdout.write(sitedir)"`
      case $am_cv_python_pyexecdir in
      $am_py_exec_prefix*)
        am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
@@ -17564,7 +17642,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by gtk-vnc $as_me 0.5.2, which was
+This file was extended by gtk-vnc $as_me 0.5.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -17635,7 +17713,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-gtk-vnc config.status 0.5.2
+gtk-vnc config.status 0.5.3
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -18691,7 +18769,7 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
 
   case $ac_file$ac_mode in
     "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # Older Autoconf quotes --file arguments for eval, but not when files
   # are listed without --file.  Let's play safe and only enable the eval
   # if we detect the quoting.
   case $CONFIG_FILES in
@@ -18742,7 +18820,7 @@ $as_echo X"$mf" |
     DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
     test -z "$DEPDIR" && continue
     am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
+    test -z "$am__include" && continue
     am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
     # Find all dependency output files, they are included files with
     # $(DEPDIR) in their names.  We invoke sed twice because it is the
diff --git a/configure.ac b/configure.ac
index f7a17b8..ff38b17 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
 
 AC_PREREQ(2.63)
 
-AC_INIT([gtk-vnc],[0.5.2],[https://bugzilla.gnome.org/enter_bug.cgi?product=gtk-vnc],[gtk-vnc],[http://live.gnome.org/gtk-vnc/])
+AC_INIT([gtk-vnc],[0.5.3],[https://bugzilla.gnome.org/enter_bug.cgi?product=gtk-vnc],[gtk-vnc],[http://live.gnome.org/gtk-vnc/])
 AC_CONFIG_SRCDIR([src/vncconnection.c])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_HEADERS([config.h])
@@ -144,7 +144,7 @@ AC_ARG_WITH(examples,
 WITH_EXAMPLES=$withval
 
 
-NO_UNDEFINED_LDFLAGS=
+NO_UNDEFINED_FLAGS=
 VERSION_SCRIPT_FLAGS=
 USE_VERSION_DEFS=0
 case "$host" in
@@ -155,11 +155,12 @@ case "$host" in
     ;;
 
   *-*-cygwin*)
-    NO_UNDEFINED_LDFLAGS="-no-undefined"
+    NO_UNDEFINED_FLAGS="-no-undefined"
     ;;
 
   *)
-    NO_UNDEFINED_FLAGS="-Wl,--no-undefined"
+    `ld --help 2>&1 | grep -- --no-undefined >/dev/null` && \
+      NO_UNDEFINED_FLAGS="-Wl,--no-undefined"
     VERSION_SCRIPT_FLAGS=-Wl,--version-script=
     `ld --help 2>&1 | grep -- --version-script >/dev/null` || \
       VERSION_SCRIPT_FLAGS="-Wl,-M -Wl,"
diff --git a/examples/Makefile.in b/examples/Makefile.in
index 628eea5..4049496 100644
--- a/examples/Makefile.in
+++ b/examples/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,9 +82,8 @@ host_triplet = @host@
 @WITH_EXAMPLES_FALSE at noinst_PROGRAMS = gvncviewer$(EXEEXT)
 @HAVE_PULSEAUDIO_TRUE at am__append_1 = ../src/libgvncpulse-1.0.la
 subdir = examples
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/build-aux/depcomp \
-	$(top_srcdir)/build-aux/mkinstalldirs
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/build-aux/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-vnc-warnings.m4 \
 	$(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \
@@ -66,7 +93,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-vnc-warnings.m4 \
 	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
@@ -126,6 +153,23 @@ am__can_run_installinfo = \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -387,10 +431,12 @@ install-binPROGRAMS: $(bin_PROGRAMS)
 	fi; \
 	for p in $$list; do echo "$$p $$p"; done | \
 	sed 's/$(EXEEXT)$$//' | \
-	while read p p1; do if test -f $$p || test -f $$p1; \
-	  then echo "$$p"; echo "$$p"; else :; fi; \
+	while read p p1; do if test -f $$p \
+	 || test -f $$p1 \
+	  ; then echo "$$p"; echo "$$p"; else :; fi; \
 	done | \
-	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	sed -e 'p;s,.*/,,;n;h' \
+	    -e 's|.*|.|' \
 	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
 	sed 'N;N;N;s,\n, ,g' | \
 	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -411,7 +457,8 @@ uninstall-binPROGRAMS:
 	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
 	files=`for p in $$list; do echo "$$p"; done | \
 	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-	      -e 's/$$/$(EXEEXT)/' `; \
+	      -e 's/$$/$(EXEEXT)/' \
+	`; \
 	test -n "$$list" || exit 0; \
 	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
 	cd "$(DESTDIR)$(bindir)" && rm -f $$files
@@ -433,6 +480,7 @@ clean-noinstPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 gvncviewer$(EXEEXT): $(gvncviewer_OBJECTS) $(gvncviewer_DEPENDENCIES) $(EXTRA_gvncviewer_DEPENDENCIES) 
 	@rm -f gvncviewer$(EXEEXT)
 	$(AM_V_CCLD)$(gvncviewer_LINK) $(gvncviewer_OBJECTS) $(gvncviewer_LDADD) $(LIBS)
@@ -486,26 +534,15 @@ mostlyclean-libtool:
 clean-libtool:
 	-rm -rf .libs _libs
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -517,15 +554,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -534,9 +567,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -692,19 +726,20 @@ uninstall-am: uninstall-binPROGRAMS
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
-	clean-generic clean-libtool clean-noinstPROGRAMS cscopelist \
-	ctags distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-binPROGRAMS \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+	clean-binPROGRAMS clean-generic clean-libtool \
+	clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distdir dvi dvi-am html html-am info info-am \
+	install install-am install-binPROGRAMS install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-binPROGRAMS
+	tags tags-am uninstall uninstall-am uninstall-binPROGRAMS
 
 
 -include $(top_srcdir)/git.mk
diff --git a/examples/gvncviewer.c b/examples/gvncviewer.c
index 1cececf..bedb2da 100644
--- a/examples/gvncviewer.c
+++ b/examples/gvncviewer.c
@@ -108,6 +108,12 @@ typedef struct {
     gboolean set;
 } VncGrabDefs;
 
+gboolean enable_mnemonics_save;
+GtkAccelGroup *accel_group;
+gboolean accel_enabled = TRUE;
+GValue accel_setting;
+GSList *accel_list;
+
 static void set_title(VncDisplay *vncdisplay, GtkWidget *window,
                       gboolean grabbed)
 {
@@ -141,12 +147,86 @@ static gboolean vnc_screenshot(GtkWidget *window G_GNUC_UNUSED,
     return FALSE;
 }
 
-static void vnc_grab(GtkWidget *vncdisplay, GtkWidget *window)
+
+static void
+vnc_disable_modifiers(GtkWindow *window)
+{
+    GtkSettings *settings = gtk_settings_get_default();
+    GValue empty;
+    GSList *accels;
+
+    if (!accel_enabled)
+        return;
+
+    /* This stops F10 activating menu bar */
+    memset(&empty, 0, sizeof empty);
+    g_value_init(&empty, G_TYPE_STRING);
+    g_object_get_property(G_OBJECT(settings), "gtk-menu-bar-accel", &accel_setting);
+    g_object_set_property(G_OBJECT(settings), "gtk-menu-bar-accel", &empty);
+
+    /* This stops global accelerators like Ctrl+Q == Quit */
+    for (accels = accel_list ; accels ; accels = accels->next) {
+        if (accel_group == accels->data)
+            continue;
+        gtk_window_remove_accel_group(GTK_WINDOW(window), accels->data);
+    }
+
+    /* This stops menu bar shortcuts like Alt+F == File */
+    g_object_get(settings,
+                 "gtk-enable-mnemonics", &enable_mnemonics_save,
+                 NULL);
+    g_object_set(settings,
+                 "gtk-enable-mnemonics", FALSE,
+                 NULL);
+
+    accel_enabled = FALSE;
+}
+
+
+static void
+vnc_enable_modifiers(GtkWindow *window)
+{
+    GtkSettings *settings = gtk_settings_get_default();
+    GSList *accels;
+
+    if (accel_enabled)
+        return;
+
+    /* This allows F10 activating menu bar */
+    g_object_set_property(G_OBJECT(settings), "gtk-menu-bar-accel", &accel_setting);
+
+    /* This allows global accelerators like Ctrl+Q == Quit */
+    for (accels = accel_list ; accels ; accels = accels->next) {
+        if (accel_group == accels->data)
+            continue;
+        gtk_window_add_accel_group(GTK_WINDOW(window), accels->data);
+    }
+
+    /* This allows menu bar shortcuts like Alt+F == File */
+    g_object_set(settings,
+                 "gtk-enable-mnemonics", enable_mnemonics_save,
+                 NULL);
+
+    accel_enabled = TRUE;
+}
+
+
+static void vnc_key_grab(GtkWidget *vncdisplay G_GNUC_UNUSED, GtkWidget *window)
+{
+    vnc_disable_modifiers(GTK_WINDOW(window));
+}
+
+static void vnc_key_ungrab(GtkWidget *vncdisplay G_GNUC_UNUSED, GtkWidget *window)
+{
+    vnc_enable_modifiers(GTK_WINDOW(window));
+}
+
+static void vnc_mouse_grab(GtkWidget *vncdisplay, GtkWidget *window)
 {
     set_title(VNC_DISPLAY(vncdisplay), window, TRUE);
 }
 
-static void vnc_ungrab(GtkWidget *vncdisplay, GtkWidget *window)
+static void vnc_mouse_ungrab(GtkWidget *vncdisplay, GtkWidget *window)
 {
     set_title(VNC_DISPLAY(vncdisplay), window, FALSE);
 }
@@ -588,6 +668,7 @@ int main(int argc, char **argv)
     GtkWidget *scaling;
     GtkWidget *showgrabkeydlg;
     const char *help_msg = "Run 'gvncviewer --help' to see a full list of available command line options";
+    GSList *accels;
 
     name = g_strdup_printf("- Simple VNC Client on Gtk-VNC %s",
                            vnc_util_get_version_string());
@@ -689,6 +770,15 @@ int main(int argc, char **argv)
     gtk_container_add(GTK_CONTAINER(window), layout);
     gtk_widget_realize(vnc);
 
+    g_value_init(&accel_setting, G_TYPE_STRING);
+
+    accels = gtk_accel_groups_from_object(G_OBJECT(window));
+
+    for ( ; accels ; accels = accels->next) {
+        accel_list = g_slist_append(accel_list, accels->data);
+        g_object_ref(G_OBJECT(accels->data));
+    }
+
 #ifdef HAVE_GIOUNIX
     if (strchr(args[0], '/')) {
         GSocketAddress *addr = g_unix_socket_address_new_with_type
@@ -724,6 +814,7 @@ int main(int argc, char **argv)
 #endif
     vnc_display_set_keyboard_grab(VNC_DISPLAY(vnc), TRUE);
     vnc_display_set_pointer_grab(VNC_DISPLAY(vnc), TRUE);
+    vnc_display_set_pointer_local(VNC_DISPLAY(vnc), TRUE);
 
     if (!gtk_widget_is_composited(window)) {
         vnc_display_set_scaling(VNC_DISPLAY(vnc), TRUE);
@@ -747,9 +838,15 @@ int main(int argc, char **argv)
                      G_CALLBACK(vnc_desktop_resize), NULL);
 
     g_signal_connect(vnc, "vnc-pointer-grab",
-                     G_CALLBACK(vnc_grab), window);
+                     G_CALLBACK(vnc_mouse_grab), window);
     g_signal_connect(vnc, "vnc-pointer-ungrab",
-                     G_CALLBACK(vnc_ungrab), window);
+                     G_CALLBACK(vnc_mouse_ungrab), window);
+
+    g_signal_connect(vnc, "vnc-keyboard-grab",
+                     G_CALLBACK(vnc_key_grab), window);
+    g_signal_connect(vnc, "vnc-keyboard-ungrab",
+                     G_CALLBACK(vnc_key_ungrab), window);
+
 
     g_signal_connect(window, "key-press-event",
                      G_CALLBACK(vnc_screenshot), vnc);
diff --git a/gtk-vnc.spec b/gtk-vnc.spec
index a09548a..e418a5f 100644
--- a/gtk-vnc.spec
+++ b/gtk-vnc.spec
@@ -19,7 +19,7 @@
 
 Summary: A GTK2 widget for VNC clients
 Name: gtk-vnc
-Version: 0.5.2
+Version: 0.5.3
 Release: 1%{?dist}%{?extra_release}
 License: LGPLv2+
 Group: Development/Libraries
@@ -29,7 +29,7 @@ URL: http://live.gnome.org/gtk-vnc
 Requires: gvnc = %{version}-%{release}
 BuildRequires: gtk2-devel >= 2.14
 BuildRequires: pygtk2-devel python-devel zlib-devel
-BuildRequires: gnutls-devel cyrus-sasl-devel intltool
+BuildRequires: gnutls-devel libgcrypt-devel cyrus-sasl-devel intltool
 %if %{with_gir}
 BuildRequires: gobject-introspection-devel
 %if 0%{?fedora} && 0%{?fedora} < 14
@@ -168,12 +168,14 @@ cp -a gtk-vnc-%{version} gtk-vnc2-%{version}
 cd gtk-vnc-%{version}
 %configure --with-gtk=2.0 %{gir_arg}
 %__make %{?_smp_mflags} V=1
+chmod -x examples/*.pl examples/*.js examples/*.py
 cd ..
 
 %if %{with_gtk3}
 cd gtk-vnc2-%{version}
 %configure --with-gtk=3.0 %{gir_arg}
 %__make %{?_smp_mflags} V=1
+chmod -x examples/*.pl examples/*.js examples/*.py
 cd ..
 %endif
 
@@ -225,11 +227,6 @@ rm -fr %{buildroot}
 %files devel
 %defattr(-, root, root)
 %doc gtk-vnc-%{version}/examples/gvncviewer.c
-%if %{with_gir}
-%doc gtk-vnc-%{version}/examples/gvncviewer.js
-%doc gtk-vnc-%{version}/examples/gvncviewer.pl
-%doc gtk-vnc-%{version}/examples/gvncviewer-introspection.py
-%endif
 %{_libdir}/libgtk-vnc-1.0.so
 %dir %{_includedir}/%{name}-1.0/
 %{_includedir}/%{name}-1.0/*.h
@@ -313,6 +310,8 @@ rm -fr %{buildroot}
 %doc gtk-vnc2-%{version}/examples/gvncviewer.c
 %if %{with_gir}
 %doc gtk-vnc2-%{version}/examples/gvncviewer.js
+%doc gtk-vnc2-%{version}/examples/gvncviewer.pl
+%doc gtk-vnc2-%{version}/examples/gvncviewer-introspection.py
 %endif
 %{_libdir}/libgtk-vnc-2.0.so
 %dir %{_includedir}/%{name}-2.0/
diff --git a/gtk-vnc.spec.in b/gtk-vnc.spec.in
index 5575a39..135b564 100644
--- a/gtk-vnc.spec.in
+++ b/gtk-vnc.spec.in
@@ -29,7 +29,7 @@ URL: http://live.gnome.org/gtk-vnc
 Requires: gvnc = %{version}-%{release}
 BuildRequires: gtk2-devel >= 2.14
 BuildRequires: pygtk2-devel python-devel zlib-devel
-BuildRequires: gnutls-devel cyrus-sasl-devel intltool
+BuildRequires: gnutls-devel libgcrypt-devel cyrus-sasl-devel intltool
 %if %{with_gir}
 BuildRequires: gobject-introspection-devel
 %if 0%{?fedora} && 0%{?fedora} < 14
@@ -168,12 +168,14 @@ cp -a gtk-vnc-%{version} gtk-vnc2-%{version}
 cd gtk-vnc-%{version}
 %configure --with-gtk=2.0 %{gir_arg}
 %__make %{?_smp_mflags} V=1
+chmod -x examples/*.pl examples/*.js examples/*.py
 cd ..
 
 %if %{with_gtk3}
 cd gtk-vnc2-%{version}
 %configure --with-gtk=3.0 %{gir_arg}
 %__make %{?_smp_mflags} V=1
+chmod -x examples/*.pl examples/*.js examples/*.py
 cd ..
 %endif
 
@@ -225,11 +227,6 @@ rm -fr %{buildroot}
 %files devel
 %defattr(-, root, root)
 %doc gtk-vnc-%{version}/examples/gvncviewer.c
-%if %{with_gir}
-%doc gtk-vnc-%{version}/examples/gvncviewer.js
-%doc gtk-vnc-%{version}/examples/gvncviewer.pl
-%doc gtk-vnc-%{version}/examples/gvncviewer-introspection.py
-%endif
 %{_libdir}/libgtk-vnc-1.0.so
 %dir %{_includedir}/%{name}-1.0/
 %{_includedir}/%{name}-1.0/*.h
@@ -313,6 +310,8 @@ rm -fr %{buildroot}
 %doc gtk-vnc2-%{version}/examples/gvncviewer.c
 %if %{with_gir}
 %doc gtk-vnc2-%{version}/examples/gvncviewer.js
+%doc gtk-vnc2-%{version}/examples/gvncviewer.pl
+%doc gtk-vnc2-%{version}/examples/gvncviewer-introspection.py
 %endif
 %{_libdir}/libgtk-vnc-2.0.so
 %dir %{_includedir}/%{name}-2.0/
diff --git a/po/LINGUAS b/po/LINGUAS
index 24fad01..3c7c436 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -32,6 +32,7 @@ sl
 sr
 sr at latin
 sv
+tg
 th
 tr
 uk
diff --git a/po/tg.po b/po/tg.po
new file mode 100644
index 0000000..308804f
--- /dev/null
+++ b/po/tg.po
@@ -0,0 +1,31 @@
+# Tajik translation for gtk-vnc.
+# Copyright (C) 2013 THE gtk-vnc'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the gtk-vnc package.
+# Victor Ibragimov <victor.ibragimov at gmail.com>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gtk-vnc\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk-"
+"vnc&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2013-02-22 13:10+0000\n"
+"PO-Revision-Date: 2013-03-19 10:46+0500\n"
+"Last-Translator: Victor Ibragimov <victor.ibragimov at gmail.com>\n"
+"Language-Team: \n"
+"Language: Tajik\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.4\n"
+
+#: ../src/vncdisplay.c:166
+msgid "Enables debug output"
+msgstr "Фаъолкунии барориши ислоҳи хатоҳо"
+
+#: ../src/vncdisplay.c:2499
+msgid "GTK-VNC Options:"
+msgstr "Имконоти GTK-VNC:"
+
+#: ../src/vncdisplay.c:2499
+msgid "Show GTK-VNC Options"
+msgstr "Намоиш додани имконоти GTK-VNC"
diff --git a/src/Makefile.in b/src/Makefile.in
index b09fe23..2dbc5c0 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -17,23 +17,51 @@
 
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -75,12 +103,12 @@ host_triplet = @host@
 @HAVE_PULSEAUDIO_TRUE@@WITH_GOBJECT_INTROSPECTION_TRUE at am__append_17 = GVncPulse-1.0.typelib
 @WITH_GOBJECT_INTROSPECTION_TRUE at am__append_18 = $(gir_DATA) $(typelibs_DATA)
 subdir = src
-DIST_COMMON = $(am__gvncpulse_include_HEADERS_DIST) \
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/build-aux/depcomp \
+	$(am__gvncpulse_include_HEADERS_DIST) \
 	$(am__libgtk_vnc_1_0_la_HEADERS_DIST) \
 	$(am__libgtk_vnc_2_0_la_HEADERS_DIST) \
-	$(libgvnc_1_0_la_HEADERS) $(srcdir)/Makefile.am \
-	$(srcdir)/Makefile.in $(top_srcdir)/build-aux/depcomp \
-	$(top_srcdir)/build-aux/mkinstalldirs
+	$(libgvnc_1_0_la_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-vnc-warnings.m4 \
 	$(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \
@@ -90,7 +118,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-vnc-warnings.m4 \
 	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
@@ -308,6 +336,23 @@ HEADERS = $(gvncpulse_include_HEADERS) $(libgtk_vnc_1_0_la_HEADERS) \
 	$(nodist_libgtk_vnc_1_0_la_HEADERS) \
 	$(nodist_libgtk_vnc_2_0_la_HEADERS) \
 	$(nodist_libgvnc_1_0_la_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -762,6 +807,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
@@ -796,6 +842,7 @@ clean-libLTLIBRARIES:
 	  echo rm -f $${locs}; \
 	  rm -f $${locs}; \
 	}
+
 install-pyexecLTLIBRARIES: $(pyexec_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	@list='$(pyexec_LTLIBRARIES)'; test -n "$(pyexecdir)" || list=; \
@@ -830,14 +877,19 @@ clean-pyexecLTLIBRARIES:
 	  echo rm -f $${locs}; \
 	  rm -f $${locs}; \
 	}
+
 gtkvnc.la: $(gtkvnc_la_OBJECTS) $(gtkvnc_la_DEPENDENCIES) $(EXTRA_gtkvnc_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(gtkvnc_la_LINK) $(am_gtkvnc_la_rpath) $(gtkvnc_la_OBJECTS) $(gtkvnc_la_LIBADD) $(LIBS)
+
 libgtk-vnc-1.0.la: $(libgtk_vnc_1_0_la_OBJECTS) $(libgtk_vnc_1_0_la_DEPENDENCIES) $(EXTRA_libgtk_vnc_1_0_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgtk_vnc_1_0_la_LINK) $(am_libgtk_vnc_1_0_la_rpath) $(libgtk_vnc_1_0_la_OBJECTS) $(libgtk_vnc_1_0_la_LIBADD) $(LIBS)
+
 libgtk-vnc-2.0.la: $(libgtk_vnc_2_0_la_OBJECTS) $(libgtk_vnc_2_0_la_DEPENDENCIES) $(EXTRA_libgtk_vnc_2_0_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgtk_vnc_2_0_la_LINK) $(am_libgtk_vnc_2_0_la_rpath) $(libgtk_vnc_2_0_la_OBJECTS) $(libgtk_vnc_2_0_la_LIBADD) $(LIBS)
+
 libgvnc-1.0.la: $(libgvnc_1_0_la_OBJECTS) $(libgvnc_1_0_la_DEPENDENCIES) $(EXTRA_libgvnc_1_0_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgvnc_1_0_la_LINK) -rpath $(libdir) $(libgvnc_1_0_la_OBJECTS) $(libgvnc_1_0_la_LIBADD) $(LIBS)
+
 libgvncpulse-1.0.la: $(libgvncpulse_1_0_la_OBJECTS) $(libgvncpulse_1_0_la_DEPENDENCIES) $(EXTRA_libgvncpulse_1_0_la_DEPENDENCIES) 
 	$(AM_V_CCLD)$(libgvncpulse_1_0_la_LINK) $(am_libgvncpulse_1_0_la_rpath) $(libgvncpulse_1_0_la_OBJECTS) $(libgvncpulse_1_0_la_LIBADD) $(LIBS)
 
@@ -1344,26 +1396,15 @@ uninstall-nodist_libgvnc_1_0_laHEADERS:
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(libgvnc_1_0_ladir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -1375,15 +1416,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -1392,9 +1429,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -1567,13 +1605,13 @@ uninstall-am: uninstall-girDATA uninstall-gvncpulse_includeHEADERS \
 
 .MAKE: all check install install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
 	clean-libLTLIBRARIES clean-libtool clean-pyexecLTLIBRARIES \
-	cscopelist ctags distclean distclean-compile distclean-generic \
-	distclean-libtool distclean-tags distdir dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-girDATA \
+	cscopelist-am ctags ctags-am distclean distclean-compile \
+	distclean-generic distclean-libtool distclean-tags distdir dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-girDATA \
 	install-gvncpulse_includeHEADERS install-html install-html-am \
 	install-info install-info-am install-libLTLIBRARIES \
 	install-libgtk_vnc_1_0_laHEADERS \
@@ -1586,7 +1624,7 @@ uninstall-am: uninstall-girDATA uninstall-gvncpulse_includeHEADERS \
 	installcheck installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-compile \
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-girDATA \
+	tags tags-am uninstall uninstall-am uninstall-girDATA \
 	uninstall-gvncpulse_includeHEADERS uninstall-libLTLIBRARIES \
 	uninstall-libgtk_vnc_1_0_laHEADERS \
 	uninstall-libgtk_vnc_2_0_laHEADERS \
diff --git a/src/coroutine_ucontext.c b/src/coroutine_ucontext.c
index a97e2b1..8fe650e 100644
--- a/src/coroutine_ucontext.c
+++ b/src/coroutine_ucontext.c
@@ -20,6 +20,7 @@
 
 #include <config.h>
 
+#include <glib.h>
 #include <sys/types.h>
 #include <sys/mman.h>
 #include <stdio.h>
@@ -41,6 +42,8 @@ static int _coroutine_release(struct continuation *cc)
             return ret;
     }
 
+    munmap(co->cc.stack, co->cc.stack_size);
+
     co->caller = NULL;
 
     return 0;
@@ -63,7 +66,8 @@ int coroutine_init(struct coroutine *co)
                         MAP_PRIVATE | MAP_ANONYMOUS,
                         -1, 0);
     if (co->cc.stack == MAP_FAILED)
-        return -1;
+        g_error("Failed to allocate %u bytes for coroutine stack",
+                (unsigned)co->stack_size);
     co->cc.entry = coroutine_trampoline;
     co->cc.release = _coroutine_release;
     co->exited = 0;
diff --git a/src/libgvnc_sym.version b/src/libgvnc_sym.version
index 9adec25..d029a81 100644
--- a/src/libgvnc_sym.version
+++ b/src/libgvnc_sym.version
@@ -87,6 +87,7 @@
 	vnc_connection_set_audio_format;
 	vnc_connection_get_audio_format;
 	vnc_connection_set_audio;
+	vnc_connection_get_ledstate;
 
 	vnc_util_set_debug;
 	vnc_util_get_debug;
diff --git a/src/vncconnection.c b/src/vncconnection.c
index 4b25a96..3f6f1bd 100644
--- a/src/vncconnection.c
+++ b/src/vncconnection.c
@@ -208,7 +208,8 @@ struct _VncConnectionPrivate
     z_stream *strm;
     z_stream streams[5];
 
-    size_t uncompressed_length;
+    size_t uncompressed_offset;
+    size_t uncompressed_size;
     guint8 uncompressed_buffer[4096];
 
     size_t compressed_length;
@@ -217,6 +218,7 @@ struct _VncConnectionPrivate
     guint8 zrle_pi;
     int zrle_pi_bits;
 
+    int ledstate;
     gboolean has_ext_key_event;
 
     struct {
@@ -248,6 +250,7 @@ enum {
     VNC_FRAMEBUFFER_UPDATE,
     VNC_DESKTOP_RESIZE,
     VNC_PIXEL_FORMAT_CHANGED,
+    VNC_LED_STATE,
 
     VNC_AUTH_FAILURE,
     VNC_AUTH_UNSUPPORTED,
@@ -449,6 +452,7 @@ struct signal_data
         VncCursor *cursor;
         gboolean absPointer;
         const char *text;
+        int ledstate;
         struct {
             int x;
             int y;
@@ -525,6 +529,13 @@ static gboolean do_vnc_connection_emit_main_context(gpointer opaque)
                       data->params.pixelFormat);
         break;
 
+    case VNC_LED_STATE:
+        g_signal_emit(G_OBJECT(data->conn),
+                      signals[data->signum],
+                      0,
+                      data->params.ledstate);
+        break;
+
     case VNC_AUTH_FAILURE:
         g_signal_emit(G_OBJECT(data->conn),
                       signals[data->signum],
@@ -614,19 +625,15 @@ static int vnc_connection_zread(VncConnection *conn, void *buffer, size_t size)
     while (offset < size) {
         /* if data is available in the uncompressed buffer, then
          * copy */
-        if (priv->uncompressed_length) {
-            size_t len = MIN(priv->uncompressed_length,
+        if (priv->uncompressed_size - priv->uncompressed_offset) {
+            size_t len = MIN(priv->uncompressed_size - priv->uncompressed_offset,
                              size - offset);
 
             memcpy(ptr + offset,
-                   priv->uncompressed_buffer,
+                   priv->uncompressed_buffer + priv->uncompressed_offset,
                    len);
 
-            priv->uncompressed_length -= len;
-            if (priv->uncompressed_length)
-                memmove(priv->uncompressed_buffer,
-                        priv->uncompressed_buffer + len,
-                        priv->uncompressed_length);
+            priv->uncompressed_offset += len;
             offset += len;
         } else {
             int err;
@@ -643,7 +650,8 @@ static int vnc_connection_zread(VncConnection *conn, void *buffer, size_t size)
                 return -1;
             }
 
-            priv->uncompressed_length = (guint8 *)priv->strm->next_out - priv->uncompressed_buffer;
+            priv->uncompressed_offset = 0;
+            priv->uncompressed_size = (guint8 *)priv->strm->next_out - priv->uncompressed_buffer;
             priv->compressed_length -= (guint8 *)priv->strm->next_in - priv->compressed_buffer;
             priv->compressed_buffer = priv->strm->next_in;
         }
@@ -705,6 +713,7 @@ static int vnc_connection_read_wire(VncConnection *conn, void *data, size_t len)
             } else {
                 g_io_wait(priv->sock, G_IO_IN);
             }
+            blocking = FALSE;
             goto reread;
         } else {
             priv->has_error = TRUE;
@@ -1415,6 +1424,19 @@ static void vnc_connection_read_pixel_format(VncConnection *conn, VncPixelFormat
               fmt->red_shift, fmt->green_shift, fmt->blue_shift);
 }
 
+static void vnc_connection_ledstate_change(VncConnection *conn)
+{
+    VncConnectionPrivate *priv = conn->priv;
+    struct signal_data sigdata;
+
+    priv->ledstate = vnc_connection_read_u8(conn);
+
+    VNC_DEBUG("LED state: %d\n", priv->ledstate);
+
+    sigdata.params.ledstate = priv->ledstate;
+    vnc_connection_emit_main_context(conn, VNC_LED_STATE, &sigdata);
+}
+
 /* initialize function */
 
 gboolean vnc_connection_has_error(VncConnection *conn)
@@ -2265,7 +2287,8 @@ static void vnc_connection_zrle_update(VncConnection *conn,
     vnc_connection_read(conn, zlib_data, length);
 
     /* setup subsequent calls to vnc_connection_read*() to use the compressed data */
-    priv->uncompressed_length = 0;
+    priv->uncompressed_offset = 0;
+    priv->uncompressed_size = 0;
     priv->compressed_length = length;
     priv->compressed_buffer = zlib_data;
     priv->strm = &priv->streams[0];
@@ -2281,7 +2304,8 @@ static void vnc_connection_zrle_update(VncConnection *conn,
     }
 
     priv->strm = NULL;
-    priv->uncompressed_length = 0;
+    priv->uncompressed_offset = 0;
+    priv->uncompressed_size = 0;
     priv->compressed_length = 0;
     priv->compressed_buffer = NULL;
 
@@ -2545,7 +2569,8 @@ static void vnc_connection_tight_update(VncConnection *conn,
 
             vnc_connection_read(conn, zlib_data, zlib_length);
 
-            priv->uncompressed_length = 0;
+            priv->uncompressed_offset = 0;
+            priv->uncompressed_size = 0;
             priv->compressed_length = zlib_length;
             priv->compressed_buffer = zlib_data;
         }
@@ -2569,7 +2594,8 @@ static void vnc_connection_tight_update(VncConnection *conn,
         }
 
         if (data_size >= 12) {
-            priv->uncompressed_length = 0;
+            priv->uncompressed_offset = 0;
+            priv->uncompressed_size = 0;
             priv->compressed_length = 0;
             priv->compressed_buffer = NULL;
 
@@ -2884,6 +2910,10 @@ static gboolean vnc_connection_framebuffer_update(VncConnection *conn, gint32 et
         vnc_connection_pointer_type_change(conn, x);
         vnc_connection_resend_framebuffer_update_request(conn);
         break;
+    case VNC_CONNECTION_ENCODING_LED_STATE:
+        vnc_connection_ledstate_change(conn);
+        vnc_connection_resend_framebuffer_update_request(conn);
+        break;
     case VNC_CONNECTION_ENCODING_WMVi:
         vnc_connection_read_pixel_format(conn, &priv->fmt);
         vnc_connection_pixel_format(conn);
@@ -4609,6 +4639,16 @@ static void vnc_connection_class_init(VncConnectionClass *klass)
                       1,
                       G_TYPE_POINTER);
 
+    signals[VNC_LED_STATE] =
+        g_signal_new ("vnc-led-state",
+                      G_OBJECT_CLASS_TYPE (object_class),
+                      G_SIGNAL_RUN_FIRST,
+                      G_STRUCT_OFFSET (VncConnectionClass, vnc_led_state),
+                      NULL, NULL,
+                      g_cclosure_marshal_VOID__INT,
+                      G_TYPE_NONE,
+                      0);
+
     signals[VNC_AUTH_FAILURE] =
         g_signal_new ("vnc-auth-failure",
                       G_OBJECT_CLASS_TYPE (object_class),
@@ -4776,7 +4816,8 @@ static void vnc_connection_close(VncConnection *conn)
 
     priv->read_offset = priv->read_size = 0;
     priv->write_offset = 0;
-    priv->uncompressed_length = 0;
+    priv->uncompressed_offset = 0;
+    priv->uncompressed_size = 0;
     priv->compressed_length = 0;
 
     priv->width = priv->height = 0;
@@ -4989,7 +5030,17 @@ static gboolean vnc_connection_open_fd_internal(VncConnection *conn)
     return !vnc_connection_has_error(conn);
 }
 
-static GSocket *vnc_connection_connect_socket(GSocketAddress *sockaddr,
+static gboolean connect_timeout(gpointer data)
+{
+    struct wait_queue *wait = data;
+
+    g_io_wakeup(wait);
+
+    return FALSE;
+}
+
+static GSocket *vnc_connection_connect_socket(struct wait_queue *wait,
+                                              GSocketAddress *sockaddr,
                                               GError **error)
 {
     GSocket *sock = g_socket_new(g_socket_address_get_family(sockaddr),
@@ -5000,27 +5051,39 @@ static GSocket *vnc_connection_connect_socket(GSocketAddress *sockaddr,
     if (!sock)
         return NULL;
 
+    guint timeout = g_timeout_add_seconds(10, connect_timeout, wait);
+
     g_socket_set_blocking(sock, FALSE);
     if (!g_socket_connect(sock, sockaddr, NULL, error)) {
         if (*error && (*error)->code == G_IO_ERROR_PENDING) {
             g_error_free(*error);
             *error = NULL;
             VNC_DEBUG("Socket pending");
-            g_io_wait(sock, G_IO_OUT|G_IO_ERR|G_IO_HUP);
-
-            if (!g_socket_check_connect_result(sock, error)) {
-                VNC_DEBUG("Failed to connect %s", (*error)->message);
-                g_object_unref(sock);
-                return NULL;
+            if (!g_io_wait_interruptable(wait, sock, G_IO_OUT|G_IO_ERR|G_IO_HUP)) {
+                VNC_DEBUG("connect interrupted");
+                timeout = 0;
+                goto timeout;
             }
-        } else {
-            VNC_DEBUG("Socket error: %s", *error ? (*error)->message : "unknown");
-            g_object_unref(sock);
-            return NULL;
-        }
+
+            if (!g_socket_check_connect_result(sock, error))
+                goto error;
+        } else
+            goto error;
     }
 
     VNC_DEBUG("Finally connected");
+    goto end;
+
+error:
+    VNC_DEBUG("Socket error: %s", *error ? (*error)->message : "unknown");
+
+timeout:
+    g_object_unref(sock);
+    sock = NULL;
+
+end:
+    if (timeout != 0)
+        g_source_remove(timeout);
 
     return sock;
 }
@@ -5033,7 +5096,7 @@ static gboolean vnc_connection_open_addr_internal(VncConnection *conn)
 
     VNC_DEBUG("Connecting with addr %p", priv->addr);
 
-    sock = vnc_connection_connect_socket(priv->addr, &conn_error);
+    sock = vnc_connection_connect_socket(&priv->wait, priv->addr, &conn_error);
     g_clear_error(&conn_error);
     if (sock) {
         priv->sock = sock;
@@ -5068,7 +5131,7 @@ static gboolean vnc_connection_open_host_internal(VncConnection *conn)
            (sockaddr = g_socket_address_enumerator_next(enumerator, NULL, &conn_error))) {
         VNC_DEBUG("Trying one socket");
         g_clear_error(&conn_error);
-        sock = vnc_connection_connect_socket(sockaddr, &conn_error);
+        sock = vnc_connection_connect_socket(&priv->wait, sockaddr, &conn_error);
         g_object_unref(sockaddr);
     }
     g_object_unref(enumerator);
@@ -5444,6 +5507,13 @@ gboolean vnc_connection_get_abs_pointer(VncConnection *conn)
     return priv->absPointer;
 }
 
+int vnc_connection_get_ledstate(VncConnection *conn)
+{
+    VncConnectionPrivate *priv = conn->priv;
+
+    return priv->ledstate;
+}
+
 /*
  * Local variables:
  *  c-indent-level: 4
diff --git a/src/vncconnection.h b/src/vncconnection.h
index cbfefd7..72d3f38 100644
--- a/src/vncconnection.h
+++ b/src/vncconnection.h
@@ -39,6 +39,11 @@ G_BEGIN_DECLS
 #define VNC_IS_CONNECTION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VNC_TYPE_CONNECTION))
 #define VNC_CONNECTION_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), VNC_TYPE_CONNECTION, VncConnectionClass))
 
+/* identical to the ledstate bits */
+#define VNC_LEDSTATE_SCROLL_LOCK (1 << 0)
+#define VNC_LEDSTATE_NUM_LOCK    (1 << 1)
+#define VNC_LEDSTATE_CAPS_LOCK   (1 << 2)
+
 
 typedef struct _VncConnection VncConnection;
 typedef struct _VncConnectionPrivate VncConnectionPrivate;
@@ -73,12 +78,13 @@ struct _VncConnectionClass
     void (*vnc_connected)(VncConnection *conn);
     void (*vnc_initialized)(VncConnection *conn);
     void (*vnc_disconnected)(VncConnection *conn);
+    void (*vnc_led_state)(VncConnection *conn);
 
     /*
      * If adding fields to this struct, remove corresponding
      * amount of padding to avoid changing overall struct size
      */
-    gpointer _vnc_reserved[VNC_PADDING_LARGE];
+    gpointer _vnc_reserved[VNC_PADDING_LARGE - 4];
 };
 
 
@@ -114,6 +120,7 @@ typedef enum {
     VNC_CONNECTION_ENCODING_POINTER_CHANGE = -257,
     VNC_CONNECTION_ENCODING_EXT_KEY_EVENT = -258,
     VNC_CONNECTION_ENCODING_AUDIO = -259,
+    VNC_CONNECTION_ENCODING_LED_STATE = -261,
 } VncConnectionEncoding;
 
 typedef enum {
@@ -203,6 +210,7 @@ VncCursor *vnc_connection_get_cursor(VncConnection *conn);
 
 gboolean vnc_connection_get_abs_pointer(VncConnection *conn);
 gboolean vnc_connection_get_ext_key_event(VncConnection *conn);
+int vnc_connection_get_ledstate(VncConnection *conn);
 
 gboolean vnc_connection_set_audio(VncConnection *conn,
                                   VncAudio *audio);
diff --git a/src/vncdisplay.c b/src/vncdisplay.c
index 37de008..de3f3ef 100644
--- a/src/vncdisplay.c
+++ b/src/vncdisplay.c
@@ -80,6 +80,7 @@ struct _VncDisplayPrivate
     size_t keycode_maplen;
     const guint16 *keycode_map;
 
+    gboolean vncgrabpending; /* Key sequence detected, waiting for release */
     VncGrabSequence *vncgrabseq; /* the configured key sequence */
     gboolean *vncactiveseq; /* the currently pressed keys */
 };
@@ -763,11 +764,19 @@ static gboolean motion_event(GtkWidget *widget, GdkEventMotion *motion)
             dx = (int)motion->x;
             dy = (int)motion->y;
 
-            /* Drop out of bounds motion to avoid upsetting
-             * the server */
-            if (dx < 0 || dx >= fbw ||
-                dy < 0 || dy >= fbh)
-                return FALSE;
+            /* If the co-ords are out of bounds we want to clamp
+             * them to the boundaries. We don't want to actually
+             * drop the events though, because even if the X coord
+             * is out of bounds we want the server to see Y coord
+             * changes, and vica-verca. */
+            if (dx < 0)
+                dx = 0;
+            if (dy < 0)
+                dy = 0;
+            if (dx >= fbw)
+                dx = fbw - 1;
+            if (dy >= fbh)
+                dy = fbh - 1;
         } else {
             /* Just send the delta since last motion event */
             dx = (int)motion->x + 0x7FFF - priv->last_x;
@@ -784,6 +793,17 @@ static gboolean motion_event(GtkWidget *widget, GdkEventMotion *motion)
 }
 
 
+/*
+ * Lets say the grab sequence of Ctrl_L + Alt_L
+ *
+ * We first need to detect when both Ctrl_L and Alt_L are pressed.
+ * When this happens we are "primed" to tigger.
+ *
+ * If any further key is pressed though, we unprime ourselves
+ *
+ * If any key is released while we are primed, then we
+ * trigger.
+ */
 static gboolean check_for_grab_key(GtkWidget *widget, int type, int keyval)
 {
     VncDisplayPrivate *priv = VNC_DISPLAY(widget)->priv;
@@ -793,23 +813,42 @@ static gboolean check_for_grab_key(GtkWidget *widget, int type, int keyval)
         return FALSE;
 
     if (type == GDK_KEY_RELEASE) {
+        gboolean active = priv->vncgrabpending;
         /* Any key release resets the whole grab sequence */
         memset(priv->vncactiveseq, 0,
                sizeof(gboolean)*priv->vncgrabseq->nkeysyms);
-
-        return FALSE;
+        priv->vncgrabpending = FALSE;
+        return active;
     } else {
+        gboolean setone = FALSE;
+
         /* Record the new key press */
-        for (i = 0 ; i < priv->vncgrabseq->nkeysyms ; i++)
-            if (priv->vncgrabseq->keysyms[i] == keyval)
+        for (i = 0 ; i < priv->vncgrabseq->nkeysyms ; i++) {
+            if (priv->vncgrabseq->keysyms[i] == keyval) {
                 priv->vncactiveseq[i] = TRUE;
+                setone = TRUE;
+            }
+        }
 
-        /* Return if any key is not pressed */
-        for (i = 0 ; i < priv->vncgrabseq->nkeysyms ; i++)
-            if (priv->vncactiveseq[i] == FALSE)
-                return FALSE;
+        if (setone) {
+            /* Return if any key is not pressed */
+            for (i = 0 ; i < priv->vncgrabseq->nkeysyms ; i++)
+                if (priv->vncactiveseq[i] == FALSE)
+                    return FALSE;
 
-        return TRUE;
+            /* All keys in grab seq are pressed, so prime
+             * to trigger on release
+             */
+            priv->vncgrabpending = TRUE;
+        } else {
+            /* Key not in grab seq, so must reset any pending
+             * grab keys we have */
+            memset(priv->vncactiveseq, 0,
+                   sizeof(gboolean)*priv->vncgrabseq->nkeysyms);
+            priv->vncgrabpending = FALSE;
+        }
+
+        return FALSE;
     }
 }
 
@@ -931,7 +970,10 @@ static gboolean leave_event(GtkWidget *widget, GdkEventCrossing *crossing G_GNUC
     if (priv->grab_keyboard)
         do_keyboard_ungrab(VNC_DISPLAY(widget), FALSE);
 
-    if (priv->grab_pointer)
+    if (priv->local_pointer)
+        do_pointer_hide(VNC_DISPLAY(widget));
+
+    if (priv->grab_pointer && !priv->absolute)
         do_pointer_ungrab(VNC_DISPLAY(widget), FALSE);
 
     return TRUE;
@@ -2238,6 +2280,7 @@ void vnc_display_set_pointer_grab(VncDisplay *obj, gboolean enable)
  */
 void vnc_display_set_grab_keys(VncDisplay *obj, VncGrabSequence *seq)
 {
+    obj->priv->vncgrabpending = FALSE;
     if (obj->priv->vncgrabseq) {
         vnc_grab_sequence_free(obj->priv->vncgrabseq);
         g_free(obj->priv->vncactiveseq);
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 12f0453..2c4a9a3 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -52,9 +80,8 @@ build_triplet = @build@
 host_triplet = @host@
 bin_PROGRAMS = gvnccapture$(EXEEXT)
 subdir = tools
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/build-aux/depcomp \
-	$(top_srcdir)/build-aux/mkinstalldirs
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
+	$(top_srcdir)/build-aux/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-vnc-warnings.m4 \
 	$(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \
@@ -64,7 +91,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-vnc-warnings.m4 \
 	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
@@ -153,6 +180,23 @@ am__uninstall_files_from_dir = { \
 man1dir = $(mandir)/man1
 NROFF = nroff
 MANS = $(man1_MANS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates.  Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+  BEGIN { nonempty = 0; } \
+  { items[$$0] = 1; nonempty = 1; } \
+  END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique.  This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+  list='$(am__tagged_files)'; \
+  unique=`for i in $$list; do \
+    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+  done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -418,10 +462,12 @@ install-binPROGRAMS: $(bin_PROGRAMS)
 	fi; \
 	for p in $$list; do echo "$$p $$p"; done | \
 	sed 's/$(EXEEXT)$$//' | \
-	while read p p1; do if test -f $$p || test -f $$p1; \
-	  then echo "$$p"; echo "$$p"; else :; fi; \
+	while read p p1; do if test -f $$p \
+	 || test -f $$p1 \
+	  ; then echo "$$p"; echo "$$p"; else :; fi; \
 	done | \
-	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	sed -e 'p;s,.*/,,;n;h' \
+	    -e 's|.*|.|' \
 	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
 	sed 'N;N;N;s,\n, ,g' | \
 	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
@@ -442,7 +488,8 @@ uninstall-binPROGRAMS:
 	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
 	files=`for p in $$list; do echo "$$p"; done | \
 	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
-	      -e 's/$$/$(EXEEXT)/' `; \
+	      -e 's/$$/$(EXEEXT)/' \
+	`; \
 	test -n "$$list" || exit 0; \
 	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
 	cd "$(DESTDIR)$(bindir)" && rm -f $$files
@@ -455,6 +502,7 @@ clean-binPROGRAMS:
 	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
 	echo " rm -f" $$list; \
 	rm -f $$list
+
 gvnccapture$(EXEEXT): $(gvnccapture_OBJECTS) $(gvnccapture_DEPENDENCIES) $(EXTRA_gvnccapture_DEPENDENCIES) 
 	@rm -f gvnccapture$(EXEEXT)
 	$(AM_V_CCLD)$(gvnccapture_LINK) $(gvnccapture_OBJECTS) $(gvnccapture_LDADD) $(LIBS)
@@ -549,26 +597,15 @@ uninstall-man1:
 	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
 	dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
 
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	mkid -fID $$unique
-tags: TAGS
-
-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
+ID: $(am__tagged_files)
+	$(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
 	set x; \
 	here=`pwd`; \
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+	$(am__define_uniq_tagged_files); \
 	shift; \
 	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
@@ -580,15 +617,11 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	      $$unique; \
 	  fi; \
 	fi
-ctags: CTAGS
-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
-		$(TAGS_FILES) $(LISP)
-	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
-	unique=`for i in $$list; do \
-	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
-	      END { if (nonempty) { for (i in files) print i; }; }'`; \
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+	$(am__define_uniq_tagged_files); \
 	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
 	     $$unique
@@ -597,9 +630,10 @@ GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
 	  && $(am__cd) $(top_srcdir) \
 	  && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
 
-cscopelist:  $(HEADERS) $(SOURCES) $(LISP)
-	list='$(SOURCES) $(HEADERS) $(LISP)'; \
+cscopelist-am: $(am__tagged_files)
+	list='$(am__tagged_files)'; \
 	case "$(srcdir)" in \
 	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
 	  *) sdir=$(subdir)/$(srcdir) ;; \
@@ -616,19 +650,6 @@ distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
-	@list='$(MANS)'; if test -n "$$list"; then \
-	  list=`for p in $$list; do \
-	    if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
-	    if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
-	  if test -n "$$list" && \
-	    grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
-	    echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \
-	    grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
-	    echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
-	    echo "       typically 'make maintainer-clean' will remove them" >&2; \
-	    exit 1; \
-	  else :; fi; \
-	else :; fi
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	list='$(DISTFILES)'; \
@@ -770,20 +791,20 @@ uninstall-man: uninstall-man1
 
 .MAKE: install-am install-strip
 
-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
-	clean-generic clean-libtool cscopelist ctags distclean \
-	distclean-compile distclean-generic distclean-libtool \
-	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-binPROGRAMS install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-man1 install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	installcheck installcheck-am installdirs maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags uninstall uninstall-am uninstall-binPROGRAMS \
-	uninstall-man uninstall-man1
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \
+	clean-binPROGRAMS clean-generic clean-libtool cscopelist-am \
+	ctags ctags-am distclean distclean-compile distclean-generic \
+	distclean-libtool distclean-tags distdir dvi dvi-am html \
+	html-am info info-am install install-am install-binPROGRAMS \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-man1 \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+	uninstall-binPROGRAMS uninstall-man uninstall-man1
 
 
 gvnccapture.1: gvnccapture.c
diff --git a/vapi/Makefile.in b/vapi/Makefile.in
index a9cb099..e2ca68b 100644
--- a/vapi/Makefile.in
+++ b/vapi/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.12.2 from Makefile.am.
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,23 +15,51 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__make_dryrun = \
-  { \
-    am__dry=no; \
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
     case $$MAKEFLAGS in \
       *\\[\ \	]*) \
-        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
-          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
-      *) \
-        for am__flg in $$MAKEFLAGS; do \
-          case $$am__flg in \
-            *=*|--*) ;; \
-            *n*) am__dry=yes; break;; \
-          esac; \
-        done;; \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
     esac; \
-    test $$am__dry = yes; \
-  }
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -54,8 +82,7 @@ host_triplet = @host@
 @HAVE_PULSEAUDIO_TRUE@@WITH_VALA_TRUE@	gvncpulse-1.0.vapi
 
 subdir = vapi
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-	$(top_srcdir)/build-aux/mkinstalldirs
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-vnc-warnings.m4 \
 	$(top_srcdir)/m4/intltool.m4 $(top_srcdir)/m4/libtool.m4 \
@@ -65,7 +92,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/gtk-vnc-warnings.m4 \
 	$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
-mkinstalldirs = $(SHELL) $(top_srcdir)/build-aux/mkinstalldirs
+mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
@@ -117,6 +144,7 @@ am__uninstall_files_from_dir = { \
   }
 am__installdirs = "$(DESTDIR)$(vapidir)"
 DATA = $(vapi_DATA)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
 ALL_LINGUAS = @ALL_LINGUAS@
@@ -387,11 +415,9 @@ uninstall-vapiDATA:
 	@list='$(vapi_DATA)'; test -n "$(vapidir)" || list=; \
 	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
 	dir='$(DESTDIR)$(vapidir)'; $(am__uninstall_files_from_dir)
-tags: TAGS
-TAGS:
+tags TAGS:
 
-ctags: CTAGS
-CTAGS:
+ctags CTAGS:
 
 cscope cscopelist:
 
@@ -533,16 +559,16 @@ uninstall-am: uninstall-vapiDATA
 .MAKE: install-am install-strip
 
 .PHONY: all all-am check check-am clean clean-generic clean-libtool \
-	distclean distclean-generic distclean-libtool distdir dvi \
-	dvi-am html html-am info info-am install install-am \
-	install-data install-data-am install-dvi install-dvi-am \
-	install-exec install-exec-am install-html install-html-am \
-	install-info install-info-am install-man install-pdf \
-	install-pdf-am install-ps install-ps-am install-strip \
-	install-vapiDATA installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	uninstall uninstall-am uninstall-vapiDATA
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip install-vapiDATA installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+	ps ps-am tags-am uninstall uninstall-am uninstall-vapiDATA
 
 
 @WITH_VALA_TRUE at gvnc-1.0.vapi: $(top_builddir)/src/GVnc-1.0.gir

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-libvirt/gtk-vnc.git



More information about the Pkg-libvirt-commits mailing list