diff --git a/community/libcanberra/APKBUILD b/community/libcanberra/APKBUILD
index 1fe10a73a34ff50f37d974ce2f7b931b834d84a0..ce1b02581832766ab2c14caa9b469b4845f8c04c 100644
--- a/community/libcanberra/APKBUILD
+++ b/community/libcanberra/APKBUILD
@@ -2,7 +2,7 @@
 # Maintainer: Rasmus Thomsen <oss@cogitri.dev>
 pkgname=libcanberra
 pkgver=0.30
-pkgrel=6
+pkgrel=7
 pkgdesc="Simple audio library for GTK applications"
 url="http://0pointer.de/lennart/projects/libcanberra/"
 arch="all"
@@ -13,7 +13,10 @@ makedepends="gtk+-dev libogg-dev libvorbis-dev alsa-lib-dev libtool gtk+3.0-dev
 	pulseaudio-dev gstreamer-dev eudev-dev"
 subpackages="$pkgname-dev $pkgname-doc $pkgname-gtk2 $pkgname-gtk3 $pkgname-pulse
 	$pkgname-gstreamer"
-source="https://dev.alpinelinux.org/archive/libcanberra/libcanberra-$pkgver.tar.xz"
+source="https://dev.alpinelinux.org/archive/libcanberra/libcanberra-$pkgver.tar.xz
+	fix-build-with-no-lynx-installed.patch
+	dont-assume-all-GdkDisplays-are-GdkX11Displays.patch
+	"
 
 prepare() {
 	default_prepare
@@ -84,4 +87,8 @@ gstreamer() {
 		"$subpkgdir"/usr/lib/libcanberra-$pkgver
 }
 
-sha512sums="f7543582122256826cd01d0f5673e1e58d979941a93906400182305463d6166855cb51f35c56d807a56dc20b7a64f7ce4391368d24990c1b70782a7d0b4429c2  libcanberra-0.30.tar.xz"
+sha512sums="
+f7543582122256826cd01d0f5673e1e58d979941a93906400182305463d6166855cb51f35c56d807a56dc20b7a64f7ce4391368d24990c1b70782a7d0b4429c2  libcanberra-0.30.tar.xz
+9ac626967a9d7b76f44ae93218527c62bd7fadd54c6853b9ce69feb104ab3e7a967f458eb15d247447034d4a6c9f625992e9cb14225a12e30ea2126ab275014c  fix-build-with-no-lynx-installed.patch
+08bcebdb3af3793fc0760a9d04277b4e4f55156fead8bedb875d86fcafa3e01a8731465ec8eec58cf48b82517ed062739995f3d0f04bfeef5f5446c1f25261b7  dont-assume-all-GdkDisplays-are-GdkX11Displays.patch
+"
diff --git a/community/libcanberra/dont-assume-all-GdkDisplays-are-GdkX11Displays.patch b/community/libcanberra/dont-assume-all-GdkDisplays-are-GdkX11Displays.patch
new file mode 100644
index 0000000000000000000000000000000000000000..79ced109d7df4f5d86b3125dab235b664320555d
--- /dev/null
+++ b/community/libcanberra/dont-assume-all-GdkDisplays-are-GdkX11Displays.patch
@@ -0,0 +1,72 @@
+From c0620e432650e81062c1967cc669829dbd29b310 Mon Sep 17 00:00:00 2001
+From: Michael Meeks <michael.meeks@suse.com>
+Date: Fri, 9 Nov 2012 16:16:40 +0000
+Subject: gtk: Don't assume all GdkDisplays are GdkX11Displays:
+ broadway/wayland
+
+---
+ src/canberra-gtk-module.c | 15 +++++++++++++++
+ src/canberra-gtk.c        |  5 +++++
+ 2 files changed, 20 insertions(+)
+
+Patch-Source: http://git.0pointer.net/libcanberra.git/commit/?id=c0620e432650e81062c1967cc669829dbd29b310
+
+diff --git a/src/canberra-gtk-module.c b/src/canberra-gtk-module.c
+index 67791f0..c1532ab 100644
+--- a/src/canberra-gtk-module.c
++++ b/src/canberra-gtk-module.c
+@@ -307,6 +307,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) {
+         guchar *data = NULL;
+         gint ret = -1;
+ 
++#ifdef GDK_IS_X11_DISPLAY
++        if (!GDK_IS_X11_DISPLAY(d))
++                return 0;
++#endif
++
+         if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),
+                                gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"),
+                                0, G_MAXLONG, False, XA_CARDINAL, &type_return,
+@@ -335,6 +340,11 @@ static gint display_get_desktop(GdkDisplay *d) {
+         guchar *data = NULL;
+         gint ret = -1;
+ 
++#ifdef GDK_IS_X11_DISPLAY
++        if (!GDK_IS_X11_DISPLAY(d))
++                return 0;
++#endif
++
+         if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), DefaultRootWindow(GDK_DISPLAY_XDISPLAY(d)),
+                                gdk_x11_get_xatom_by_name_for_display(d, "_NET_CURRENT_DESKTOP"),
+                                0, G_MAXLONG, False, XA_CARDINAL, &type_return,
+@@ -365,6 +375,11 @@ static gboolean window_is_xembed(GdkDisplay *d, GdkWindow *w) {
+         gboolean ret = FALSE;
+         Atom xembed;
+ 
++#ifdef GDK_IS_X11_DISPLAY
++        if (!GDK_IS_X11_DISPLAY(d))
++                return FALSE;
++#endif
++
+         /* Gnome Panel applets are XEMBED windows. We need to make sure we
+          * ignore them */
+ 
+diff --git a/src/canberra-gtk.c b/src/canberra-gtk.c
+index 34446f5..08cb668 100644
+--- a/src/canberra-gtk.c
++++ b/src/canberra-gtk.c
+@@ -185,6 +185,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) {
+         guchar *data = NULL;
+         gint ret = -1;
+ 
++#ifdef GDK_IS_X11_DISPLAY
++        if (!GDK_IS_X11_DISPLAY(d))
++                return 0;
++#endif
++
+         if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),
+                                gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"),
+                                0, G_MAXLONG, False, XA_CARDINAL, &type_return,
+-- 
+cgit v1.2.3
+
diff --git a/community/libcanberra/fix-build-with-no-lynx-installed.patch b/community/libcanberra/fix-build-with-no-lynx-installed.patch
new file mode 100644
index 0000000000000000000000000000000000000000..1d6f46b83095a3fc9b8f34aa1395bfae9ca82301
--- /dev/null
+++ b/community/libcanberra/fix-build-with-no-lynx-installed.patch
@@ -0,0 +1,63 @@
+From 5a71fffd3da981127d0a012dda1a1412acaee7d8 Mon Sep 17 00:00:00 2001
+From: Colin Walters <walters@verbum.org>
+Date: Sun, 15 Jan 2012 16:35:43 -0500
+Subject: build-sys: Fix build with no lynx installed
+
+---
+ Makefile.am     | 8 +++++++-
+ doc/Makefile.am | 3 ++-
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+Patch-Source: http://git.0pointer.net/libcanberra.git/commit/?id=5a71fffd3da981127d0a012dda1a1412acaee7d8
+
+diff --git a/Makefile.am b/Makefile.am
+index af36805..42a56e5 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -16,7 +16,11 @@
+ # License along with libcanberra. If not, see
+ # <http://www.gnu.org/licenses/>.
+ 
+-dist_doc_DATA = README
++dist_doc_DATA =
++
++if USE_LYNX
++dist_doc_DATA += README
++endif
+ 
+ EXTRA_DIST = \
+ 	autogen.sh \
+@@ -27,7 +31,9 @@ EXTRA_DIST = \
+ SUBDIRS = src gtkdoc doc
+ 
+ MAINTAINERCLEANFILES = README
++if USE_LYNX
+ noinst_DATA = README
++endif
+ 
+ pkgconfigdir = $(libdir)/pkgconfig
+ pkgconfig_DATA = libcanberra.pc
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index fae9958..cb27f22 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -16,7 +16,7 @@
+ # License along with libcanberra. If not, see
+ # <http://www.gnu.org/licenses/>.
+ 
+-noinst_DATA = README.html README
++noinst_DATA = README.html
+ EXTRA_DIST = $(noinst_DATA) style.css README.html.in
+ 
+ MAINTAINERCLEANFILES = README.html
+@@ -26,6 +26,7 @@ if USE_LYNX
+ README: README.html
+ 	$(AM_V_GEN)lynx --dump $^ | sed 's,file://localhost/.*/doc/README.html,README,' > $@
+ 
++noinst_DATA += README
+ CLEANFILES += README
+ endif
+ 
+-- 
+cgit v1.2.3
+