diff --git a/gtk+-3.9.10.tar.xz b/gtk+-3.9.10.tar.xz
deleted file mode 100644
index 8ddbcf5..0000000
--- a/gtk+-3.9.10.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:6b7881cf881faecbcc1e6ccb1ee9806682962f9db9306585dfb68a8744bc6f30
-size 13735472
diff --git a/gtk+-3.9.12.tar.xz b/gtk+-3.9.12.tar.xz
new file mode 100644
index 0000000..352f8e8
--- /dev/null
+++ b/gtk+-3.9.12.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:2b08a6c0816eb13c1504bdb9629bae794532854eb79a90934778a7ad9ecaa17d
+size 13831736
diff --git a/gtk3-build-without-wayland.patch b/gtk3-build-without-wayland.patch
new file mode 100644
index 0000000..0480766
--- /dev/null
+++ b/gtk3-build-without-wayland.patch
@@ -0,0 +1,52 @@
+From ec26a909f69e12dee1d151c8795f62d794fe7b24 Mon Sep 17 00:00:00 2001
+From: Saleem Abdulrasool <compnerd@compnerd.org>
+Date: Wed, 21 Aug 2013 02:30:05 +0000
+Subject: clipboard: fix build without wayland
+
+Signed-off-by: Saleem Abdulrasool <compnerd@compnerd.org>
+---
+diff --git a/gtk/gtkclipboard-wayland.c b/gtk/gtkclipboard-wayland.c
+index 8ab1730..d3eb906 100644
+--- a/gtk/gtkclipboard-wayland.c
++++ b/gtk/gtkclipboard-wayland.c
+@@ -23,6 +23,8 @@
+ 
+ #include "gtkclipboard-waylandprivate.h"
+ 
++#ifdef GDK_WINDOWING_WAYLAND
++
+ #include <string.h>
+ 
+ #include "gtkmain.h"
+@@ -30,8 +32,6 @@
+ #include "gtkintl.h"
+ #include "gtkselectionprivate.h"
+ 
+-#ifdef GDK_WINDOWING_WAYLAND
+-
+ static void gtk_clipboard_wayland_owner_change     (GtkClipboard             *clipboard,
+                                                     GdkEventOwnerChange      *event);
+ static gboolean gtk_clipboard_wayland_set_contents (GtkClipboard             *clipboard,
+diff --git a/gtk/gtkclipboard-waylandprivate.h b/gtk/gtkclipboard-waylandprivate.h
+index 7a5b58e..d2d1f22 100644
+--- a/gtk/gtkclipboard-waylandprivate.h
++++ b/gtk/gtkclipboard-waylandprivate.h
+@@ -18,11 +18,13 @@
+ #ifndef __GTK_CLIPBOARD_WAYLAND_WAYLAND_PRIVATE_H__
+ #define __GTK_CLIPBOARD_WAYLAND_WAYLAND_PRIVATE_H__
+ 
+-#include <gdk/wayland/gdkwayland.h>
+-#include <gtk/gtkclipboardprivate.h>
++#include <gdk/gdk.h>
+ 
+ #ifdef GDK_WINDOWING_WAYLAND
+ 
++#include <gdk/wayland/gdkwayland.h>
++#include <gtk/gtkclipboardprivate.h>
++
+ #define GTK_TYPE_CLIPBOARD_WAYLAND            (gtk_clipboard_wayland_get_type ())
+ #define GTK_CLIPBOARD_WAYLAND(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_CLIPBOARD_WAYLAND, GtkClipboardWayland))
+ #define GTK_IS_CLIPBOARD_WAYLAND(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_CLIPBOARD_WAYLAND))
+--
+cgit v0.9.2
+
diff --git a/gtk3.changes b/gtk3.changes
index b0d5334..57d1ca3 100644
--- a/gtk3.changes
+++ b/gtk3.changes
@@ -1,3 +1,26 @@
+-------------------------------------------------------------------
+Wed Aug 21 06:47:04 UTC 2013 - dimstar@opensuse.org
+
+- Update to version 3.9.12:
+  + GtkInfoBar now uses a GtkRevealer internally to slide in place.
+  + GtkHeaderBar can now add a window close button.
+  + The fine adjustment mode for scrolling has been revamped to be
+    easier discoverable, and visual feedback and autoscrolling has
+    been added.
+  + GtkIconTheme now supports 2x scaled icons for hi-dpi displays.
+  + The Wayland and X11 clipboard implementations can now coexist.
+  + Bugs fixed: bgo#448637, bgo#672220, bgo#674108, bgo#680926,
+    bgo#688738, bgo#692548, bgo#694831, bgo#697127, bgo#697399,
+    bgo#700029, bgo#701571, bgo#702144, bgo#702971, bgo#704173,
+    bgo#704334, bgo#704703, bgo#705068, bgo#705181, bgo#705182,
+    bgo#705215, bgo#705320, bgo#705372, bgo#705443, bgo#705498,
+    bgo#705524, bgo#705529, bgo#705558, bgo#705601, bgo#705605,
+    bgo#705624, bgo#705640, bgo#705672, bgo#705692, bgo#705750,
+    bgo#705765, bgo#705809, bgo#705918, bgo#706014, bgo#706045,
+    bgo#706152, bgo#706220, bgo#706028, bgo#706335.
+  + Updated translations.
+- Add gtk3-build-without-wayland.patch: Fix build without wayland.
+
 -------------------------------------------------------------------
 Tue Jul 30 07:09:39 UTC 2013 - dimstar@opensuse.org
 
diff --git a/gtk3.spec b/gtk3.spec
index b260621..a2d32dc 100644
--- a/gtk3.spec
+++ b/gtk3.spec
@@ -25,7 +25,7 @@
 
 Name:           gtk3
 %define _name gtk+
-Version:        3.9.10
+Version:        3.9.12
 Release:        0
 Summary:        The GTK+ toolkit library (version 3)
 License:        LGPL-2.1+
@@ -44,6 +44,8 @@ Patch1:         gtk3-path-local.patch
 Patch3:         gtk3-bnc130159-bgo319483-async-font-selection.patch
 # PATCH-FIX-UPSTREAM gtk3-find-wayland-includedir.patch bgo#696507 zaitor@opensuse.org -- Make configure find wayland include files.
 Patch4:         gtk3-find-wayland-includedir.patch
+# PATCH-FIX-UPSTREAM gtk3-build-without-wayland.patch bgo#706461 dimstar@opensuse.org -- fix build without wayland, taken from git.
+Patch5:         gtk3-build-without-wayland.patch
 BuildRequires:  cups-devel >= 1.2
 BuildRequires:  docbook-xsl-stylesheets
 BuildRequires:  fdupes
@@ -53,7 +55,7 @@ BuildRequires:  translation-update-upstream
 BuildRequires:  xsltproc
 BuildRequires:  pkgconfig(atk) >= 2.7.5
 BuildRequires:  pkgconfig(atk-bridge-2.0)
-BuildRequires:  pkgconfig(cairo)
+BuildRequires:  pkgconfig(cairo) >= 1.12.0
 BuildRequires:  pkgconfig(colord)
 BuildRequires:  pkgconfig(fontconfig)
 BuildRequires:  pkgconfig(gdk-pixbuf-2.0) >= 2.27.1
@@ -315,6 +317,7 @@ cp -a %{S:1} .
 %if %{build_wayland_backend}
 %patch4 -p1
 %endif
+%patch5 -p1
 
 %build
 # Needed for patch1 and patch4