diff --git a/baselibs.conf b/baselibs.conf
index 786831b..b7dc674 100644
--- a/baselibs.conf
+++ b/baselibs.conf
@@ -3,4 +3,4 @@ gtk3-tools
   post "if [ $1 == 1 ]; then test -d %{_libdir}/gtk-3.0/3.0.0; if test $? -eq 0; then %{_bindir}/gtk-query-immodules-3.0 --update-cache; fi; fi"
 libgtk-3_0-0
   provides "gtk3-<targettype> = <version>"
-  post "test -f %{_bindir}/gtk-query-immodules-3.0 && %{_bindir}/gtk-query-immodules-3.0 --update-cache"
+  post "if test -f %{_bindir}/gtk-query-immodules-3.0; then %{_bindir}/gtk-query-immodules-3.0 --update-cache; fi"
diff --git a/gtk+-2.90.6.tar.bz2 b/gtk+-2.90.6.tar.bz2
deleted file mode 100644
index b9a2124..0000000
--- a/gtk+-2.90.6.tar.bz2
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:31d5afda85fe0d9b4dbfdc265fed2f07cd0ed214bc2055310816f471e2f762dc
-size 16988522
diff --git a/gtk+-2.90.7.tar.bz2 b/gtk+-2.90.7.tar.bz2
new file mode 100644
index 0000000..e31b467
--- /dev/null
+++ b/gtk+-2.90.7.tar.bz2
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ff8bff6a422c3e8dadfc4bc1448d5e63b1de0a244eb51a8edd33cfe6f06cc2aa
+size 16921313
diff --git a/gtk3-bnc130159-bgo319483-async-font-selection.patch b/gtk3-bnc130159-bgo319483-async-font-selection.patch
index 577bdf3..edbda54 100644
--- a/gtk3-bnc130159-bgo319483-async-font-selection.patch
+++ b/gtk3-bnc130159-bgo319483-async-font-selection.patch
@@ -2,7 +2,7 @@ Index: gtk+-2.90.6/gtk/gtkfontsel.c
 ===================================================================
 --- gtk+-2.90.6.orig/gtk/gtkfontsel.c
 +++ gtk+-2.90.6/gtk/gtkfontsel.c
-@@ -130,6 +130,8 @@ struct _GtkFontSelectionDialogPriv
+@@ -130,6 +130,8 @@ struct _GtkFontSelectionDialogPrivate
  #define FONT_STYLE_LIST_WIDTH	170
  #define FONT_SIZE_LIST_WIDTH	60
  
@@ -66,7 +66,7 @@ Index: gtk+-2.90.6/gtk/gtkfontsel.c
 +gtk_font_selection_real_select_font (gpointer data)
  {
    GtkFontSelection *fontsel;
-   GtkFontSelectionPriv *priv;
+   GtkFontSelectionPrivate *priv;
 +  GtkTreeSelection *selection;
    GtkTreeModel *model;
    GtkTreeIter iter;
@@ -137,7 +137,7 @@ Index: gtk+-2.90.6/gtk/gtkfontsel.c
 +gtk_font_selection_real_select_style (gpointer data)
  {
    GtkFontSelection *fontsel = GTK_FONT_SELECTION (data);
-+  GtkFontSelectionPriv *priv;
++  GtkFontSelectionPrivate *priv;
 +  GtkTreeSelection *selection;
    GtkTreeModel *model;
    GtkTreeIter iter;
@@ -204,7 +204,7 @@ Index: gtk+-2.90.6/gtk/gtkfontsel.c
 +gtk_font_selection_real_select_size (gpointer data)
  {
    GtkFontSelection *fontsel = GTK_FONT_SELECTION (data);
-+  GtkFontSelectionPriv *priv;
++  GtkFontSelectionPrivate *priv;
 +  GtkTreeSelection *selection;
    GtkTreeModel *model;
    GtkTreeIter iter;
diff --git a/gtk3-no-gtkapplication.patch b/gtk3-no-gtkapplication.patch
new file mode 100644
index 0000000..7bb3090
--- /dev/null
+++ b/gtk3-no-gtkapplication.patch
@@ -0,0 +1,179 @@
+Index: gtk+-2.90.7/gtk/Makefile.am
+===================================================================
+--- gtk+-2.90.7.orig/gtk/Makefile.am
++++ gtk+-2.90.7/gtk/Makefile.am
+@@ -158,7 +158,6 @@ gtk_public_h_sources =          \
+ 	gtkactivatable.h	\
+ 	gtkadjustment.h		\
+ 	gtkalignment.h		\
+-	gtkapplication.h    \
+ 	gtkarrow.h		\
+ 	gtkaspectframe.h	\
+ 	gtkassistant.h		\
+@@ -418,7 +417,6 @@ gtk_base_c_sources =            \
+ 	gtkactivatable.c	\
+ 	gtkadjustment.c		\
+ 	gtkalignment.c		\
+-	gtkapplication.c \
+ 	gtkarrow.c		\
+ 	gtkaspectframe.c	\
+ 	gtkassistant.c		\
+Index: gtk+-2.90.7/gtk/Makefile.in
+===================================================================
+--- gtk+-2.90.7.orig/gtk/Makefile.in
++++ gtk+-2.90.7/gtk/Makefile.in
+@@ -120,7 +120,7 @@ am__libgtk_quartz_3_0_la_SOURCES_DIST =
+ 	gtksearchenginesimple.c fnmatch.c gtkaboutdialog.c \
+ 	gtkaccelgroup.c gtkaccellabel.c gtkaccelmap.c gtkaccessible.c \
+ 	gtkaction.c gtkactiongroup.c gtkactivatable.c gtkadjustment.c \
+-	gtkalignment.c gtkapplication.c gtkarrow.c gtkaspectframe.c \
++	gtkalignment.c gtkarrow.c gtkaspectframe.c \
+ 	gtkassistant.c gtkbbox.c gtkbin.c gtkbindings.c gtkbox.c \
+ 	gtkbuildable.c gtkbuilder.c gtkbuilderparser.c gtkbutton.c \
+ 	gtkcalendar.c gtkcelleditable.c gtkcelllayout.c \
+@@ -201,7 +201,7 @@ am__objects_2 = gtkquery.lo gtksearcheng
+ 	gtkaccelgroup.lo gtkaccellabel.lo gtkaccelmap.lo \
+ 	gtkaccessible.lo gtkaction.lo gtkactiongroup.lo \
+ 	gtkactivatable.lo gtkadjustment.lo gtkalignment.lo \
+-	gtkapplication.lo gtkarrow.lo gtkaspectframe.lo \
++	gtkarrow.lo gtkaspectframe.lo \
+ 	gtkassistant.lo gtkbbox.lo gtkbin.lo gtkbindings.lo gtkbox.lo \
+ 	gtkbuildable.lo gtkbuilder.lo gtkbuilderparser.lo gtkbutton.lo \
+ 	gtkcalendar.lo gtkcelleditable.lo gtkcelllayout.lo \
+@@ -304,7 +304,7 @@ am__libgtk_win32_3_0_la_SOURCES_DIST = g
+ 	gtksearchenginesimple.c fnmatch.c gtkaboutdialog.c \
+ 	gtkaccelgroup.c gtkaccellabel.c gtkaccelmap.c gtkaccessible.c \
+ 	gtkaction.c gtkactiongroup.c gtkactivatable.c gtkadjustment.c \
+-	gtkalignment.c gtkapplication.c gtkarrow.c gtkaspectframe.c \
++	gtkalignment.c gtkarrow.c gtkaspectframe.c \
+ 	gtkassistant.c gtkbbox.c gtkbin.c gtkbindings.c gtkbox.c \
+ 	gtkbuildable.c gtkbuilder.c gtkbuilderparser.c gtkbutton.c \
+ 	gtkcalendar.c gtkcelleditable.c gtkcelllayout.c \
+@@ -387,7 +387,7 @@ am__libgtk_x11_3_0_la_SOURCES_DIST = gtk
+ 	gtksearchenginesimple.c fnmatch.c gtkaboutdialog.c \
+ 	gtkaccelgroup.c gtkaccellabel.c gtkaccelmap.c gtkaccessible.c \
+ 	gtkaction.c gtkactiongroup.c gtkactivatable.c gtkadjustment.c \
+-	gtkalignment.c gtkapplication.c gtkarrow.c gtkaspectframe.c \
++	gtkalignment.c gtkarrow.c gtkaspectframe.c \
+ 	gtkassistant.c gtkbbox.c gtkbin.c gtkbindings.c gtkbox.c \
+ 	gtkbuildable.c gtkbuilder.c gtkbuilderparser.c gtkbutton.c \
+ 	gtkcalendar.c gtkcelleditable.c gtkcelllayout.c \
+@@ -910,7 +910,6 @@ gtk_public_h_sources = \
+ 	gtkactivatable.h	\
+ 	gtkadjustment.h		\
+ 	gtkalignment.h		\
+-	gtkapplication.h    \
+ 	gtkarrow.h		\
+ 	gtkaspectframe.h	\
+ 	gtkassistant.h		\
+@@ -1142,7 +1141,6 @@ gtk_base_c_sources = \
+ 	gtkactivatable.c	\
+ 	gtkadjustment.c		\
+ 	gtkalignment.c		\
+-	gtkapplication.c \
+ 	gtkarrow.c		\
+ 	gtkaspectframe.c	\
+ 	gtkassistant.c		\
+@@ -1947,7 +1945,6 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkactivatable.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkadjustment.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkalignment.Plo@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkapplication.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkarrow.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkaspectframe.Plo@am__quote@
+ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gtkassistant.Plo@am__quote@
+Index: gtk+-2.90.7/gtk/gtk.h
+===================================================================
+--- gtk+-2.90.7.orig/gtk/gtk.h
++++ gtk+-2.90.7/gtk/gtk.h
+@@ -40,7 +40,6 @@
+ #include <gtk/gtkactivatable.h>
+ #include <gtk/gtkadjustment.h>
+ #include <gtk/gtkalignment.h>
+-#include <gtk/gtkapplication.h>
+ #include <gtk/gtkarrow.h>
+ #include <gtk/gtkaspectframe.h>
+ #include <gtk/gtkassistant.h>
+Index: gtk+-2.90.7/gtk/tests/defaultvalue.c
+===================================================================
+--- gtk+-2.90.7.orig/gtk/tests/defaultvalue.c
++++ gtk+-2.90.7/gtk/tests/defaultvalue.c
+@@ -75,7 +75,7 @@ test_type (gconstpointer data)
+ 
+   /* These can't be freely constructed/destroyed */
+   if (g_type_is_a (type, GTK_TYPE_PRINT_JOB) ||
+-      g_type_is_a (type, GTK_TYPE_APPLICATION) ||
++      /* g_type_is_a (type, GTK_TYPE_APPLICATION) || */
+       g_type_is_a (type, GDK_TYPE_PIXBUF_LOADER) ||
+       g_type_is_a (type, gdk_pixbuf_simple_anim_iter_get_type ()))
+     return;
+Index: gtk+-2.90.7/gtk/tests/Makefile.am
+===================================================================
+--- gtk+-2.90.7.orig/gtk/tests/Makefile.am
++++ gtk+-2.90.7/gtk/tests/Makefile.am
+@@ -92,7 +92,7 @@ TEST_PROGS			+= action
+ action_SOURCES			 = action.c
+ action_LDADD			 = $(progs_ldadd)
+ 
+-SAMPLE_PROGS = gtk-example-application
++#SAMPLE_PROGS = gtk-example-application
+ gtk_example_application_SOURCES	= gtk-example-application.c
+ gtk_example_application_LDADD	= $(progs_ldadd)
+ 
+Index: gtk+-2.90.7/gtk/tests/Makefile.in
+===================================================================
+--- gtk+-2.90.7.orig/gtk/tests/Makefile.in
++++ gtk+-2.90.7/gtk/tests/Makefile.in
+@@ -56,7 +56,7 @@ am__EXEEXT_2 = testing$(EXEEXT) liststor
+ 	recentmanager$(EXEEXT) floating$(EXEEXT) object$(EXEEXT) \
+ 	builder$(EXEEXT) $(am__EXEEXT_1) textbuffer$(EXEEXT) \
+ 	filtermodel$(EXEEXT) expander$(EXEEXT) action$(EXEEXT)
+-am__EXEEXT_3 = gtk-example-application$(EXEEXT)
++#am__EXEEXT_3 = gtk-example-application$(EXEEXT)
+ PROGRAMS = $(noinst_PROGRAMS)
+ am_action_OBJECTS = action.$(OBJEXT)
+ action_OBJECTS = $(am_action_OBJECTS)
+@@ -474,7 +474,7 @@ expander_SOURCES = expander.c
+ expander_LDADD = $(progs_ldadd)
+ action_SOURCES = action.c
+ action_LDADD = $(progs_ldadd)
+-SAMPLE_PROGS = gtk-example-application
++#SAMPLE_PROGS = gtk-example-application
+ gtk_example_application_SOURCES = gtk-example-application.c
+ gtk_example_application_LDADD = $(progs_ldadd)
+ all: all-am
+Index: gtk+-2.90.7/tests/Makefile.am
+===================================================================
+--- gtk+-2.90.7.orig/tests/Makefile.am
++++ gtk+-2.90.7/tests/Makefile.am
+@@ -93,7 +93,7 @@ noinst_PROGRAMS =  $(TEST_PROGS)	\
+ 	testwrapbox
+ 
+ if USE_X11
+-noinst_PROGRAMS += testapplication
++#noinst_PROGRAMS += testapplication
+ endif
+ 
+ if HAVE_CXX
+Index: gtk+-2.90.7/tests/Makefile.in
+===================================================================
+--- gtk+-2.90.7.orig/tests/Makefile.in
++++ gtk+-2.90.7/tests/Makefile.in
+@@ -69,7 +69,7 @@ noinst_PROGRAMS = $(am__EXEEXT_1) simple
+ 	testtooltips$(EXEEXT) testexpander$(EXEEXT) \
+ 	testvolumebutton$(EXEEXT) testwrapbox$(EXEEXT) $(am__EXEEXT_3) \
+ 	$(am__EXEEXT_4)
+-@USE_X11_TRUE@am__append_1 = testapplication
++#@USE_X11_TRUE@am__append_1 = testapplication
+ @HAVE_CXX_TRUE@am__append_2 = autotestkeywords
+ @HAVE_CXX_TRUE@TESTS = autotestkeywords$(EXEEXT)
+ @HAVE_CXX_TRUE@@HAVE_OBJC_TRUE@am__append_3 = -DHAVE_OBJC=1 -x objective-c++
+@@ -86,7 +86,7 @@ CONFIG_CLEAN_VPATH_FILES =
+ am__EXEEXT_1 =
+ @USE_X11_TRUE@am__EXEEXT_2 = testsocket$(EXEEXT) \
+ @USE_X11_TRUE@	testsocket_child$(EXEEXT)
+-@USE_X11_TRUE@am__EXEEXT_3 = testapplication$(EXEEXT)
++#@USE_X11_TRUE@am__EXEEXT_3 = testapplication$(EXEEXT)
+ @HAVE_CXX_TRUE@am__EXEEXT_4 = autotestkeywords$(EXEEXT)
+ PROGRAMS = $(noinst_PROGRAMS)
+ am__autotestkeywords_SOURCES_DIST = autotestkeywords.cc
diff --git a/gtk3.changes b/gtk3.changes
index 3e8d7e5..6049e9a 100644
--- a/gtk3.changes
+++ b/gtk3.changes
@@ -1,3 +1,70 @@
+-------------------------------------------------------------------
+Sat Sep 18 12:35:00 CEST 2010 - vuntz@opensuse.org
+
+- Update to version 2.90.7:
+  + Various deprecated APIs have been removed:
+    - the GtkWidget::draw-border style property
+    - the GtkEntry::state-hint style property
+    - the GtkTreeView::row-ending-details style property
+    - the GtkRange::trough-side-details style property
+    - the GtkRange::stepper-position-details style property
+    - the GtkRange::activate-slider style property
+    - the GTK_CALENDAR_WEEK_START_MONDAY option
+    - the GtkFrame::shadow and GtkHandleBox::shadow properties
+    - the GtkTextView::page-horizontally signal
+    - the GDK_WINDOW_DIALOG window type
+    - the GTK_SELECTION_EXTENDED selection mode
+    - the GtkProgressBarOrientation, GtkAnchorType and
+      GtkVisibility enumerations
+    - GtkDialog separators, including the GtkDialog::has-separator
+      property, including setter/getter, the
+      GTK_DIALOG_NO_SEPARATOR flag and the
+      GtkMessageDialog::use-separator style property
+    - gtk_status_icon_set/get_blinking
+    - gdk_window_set_deskrelative_origin
+    - The GtkItem class has been removed. Its functionality has
+      been merged into is sole subclass, GtkMenuItem
+  + The GtkIconView::orientation property has been renamed to
+    'item-orientation'
+  + GtkProgressBar and GtkCellRendererProgress implement
+    GtkOrientable now, and their 'orientation' property have been
+    split into a 'orientation' property of type GtkOrientation and
+    a boolean 'inverted' property
+  + GDK no longer exports variables: gdk_threads_lock,
+    gdk_threads_unlock, gdk_threads_mutex and gdk_display are no
+    longer available
+  + GTK no longer exports variables: gtk_major_version,
+    gtk_minor_version, gtk_micro_version, gtk_binary_age,
+    gtk_interface_age have been converted to functions.
+    gtk_debug_flags has a getter and a setter. Misc. variables that
+    had been exported by the semi-private text API have been
+    removed.
+  + All GDK keysym names have been changed from GDK_keysym to
+    GDK_KEY_keysym; the previous names are still available in
+    gdkkeysyms-compat.h.
+  + GtkWrapBox is a new container, which distributes its children
+    over multiple rows/columns
+  + GTK+ now uses standard icon names when looking up stock icons
+  + More widgets and cell renderers have been converted to support
+    width-for-height: GtkCellRendererText, GtkAccelLabel,
+    GtkCellView, GtkComboBox, GtkMenu, GtkMenuItem
+  + Button boxes are now semi-homogeneous.
+  + The directfb backend has been removed
+  + Bugs fixed: bgo#77669, bgo#84188, bgo#414712, bgo#527499,
+    bgo#528257, bgo#605186, bgo#614006, bgo#616401, bgo#626710,
+    bgo#627028, bgo#627139, bgo#627445, bgo#627580, bgo#627643,
+    bgo#627828, bgo#627843, bgo#627867, bgo#627912, bgo#628160,
+    bgo#628308, bgo#628656, bgo#628807, bgo#628808, bgo#628884,
+    bgo#628935, bgo#629110
+  + Updated translations.
+- Add gtk3-no-gtkapplication.patch: GApplication is gone in glib
+  2.26, so we can't build GtkApplication. Remove this API for now
+  to keep gtk3 building.
+- Rebase gtk3-bnc130159-bgo319483-async-font-selection.patch.
+- Update the %post scriptlet to not fail if gtk3-tools is not
+  installed. Also make it easier to read by using a %define to
+  use the right binary for gtk-query-immodules-3.0.
+
 -------------------------------------------------------------------
 Thu Sep  9 23:10:49 CEST 2010 - vuntz@opensuse.org
 
diff --git a/gtk3.spec b/gtk3.spec
index 96eaad3..73a9493 100644
--- a/gtk3.spec
+++ b/gtk3.spec
@@ -1,5 +1,5 @@
 #
-# spec file for package gtk3 (Version 2.90.6)
+# spec file for package gtk3 (Version 2.90.7)
 #
 # Copyright (c) 2010 SUSE LINUX Products GmbH, Nuernberg, Germany.
 # Copyright (c) 2010 Dominique Leuenebrger, Amsterdam, Netherlands
@@ -20,7 +20,7 @@
 
 Name:           gtk3
 %define _name gtk+
-Version:        2.90.6
+Version:        2.90.7
 Release:        1
 # FIXME: 2.90.5 doesn't compile with parallel build (bgo#624304). Check if this is still true for later versions.
 License:        LGPLv2.1+
@@ -40,6 +40,8 @@ Patch1:         gtk3-path-local.patch
 Patch2:         gtk3-bnc129753-localize-font-style-name.patch
 # PATCH-FIX-UPSTREAM gtk3-bnc130159-bgo319483-async-font-selection.patch bnc130159 bgo319483 federico@novell.com - Load fonts asynchronously in GtkFontSelection to make it appear faster for CJK languages
 Patch3:         gtk3-bnc130159-bgo319483-async-font-selection.patch
+# PATCH-FIX-OPENSUSE gtk3-no-gtkapplication.patch vuntz@opensuse.org -- Drop GtkApplication. This is needed to keep gtk3 building against glib 2.25/2.26
+Patch4:         gtk3-no-gtkapplication.patch
 BuildRequires:  fdupes
 BuildRequires:  cups-devel
 BuildRequires:  gnome-patch-translation
@@ -146,6 +148,9 @@ cp -a %{S:1} .
 %patch1 -p0
 %patch2 -p1
 %patch3 -p1
+# Hack to make sure we're right to remove GtkApplication
+test ! -f %{_includedir}/glib-2.0/gio/gapplication.h
+%patch4 -p1
 gnome-patch-translation-update
 
 %build
@@ -178,6 +183,13 @@ cp %{S:3} %{buildroot}%{_sysconfdir}/rpm
 %clean
 rm -rf %{buildroot}
 
+# Convenient %define for the scriplets
+%if "%_lib" == "lib64"
+%define GTK_QUERY_IMMODULES %{_bindir}/gtk-query-immodules-3.0-64
+%else
+%define GTK_QUERY_IMMODULES %{_bindir}/gtk-query-immodules-3.0
+%endif
+
 # In case libgtk-3_0-0 gets installed before
 # gtk3-tools, we don't want to fail. So we make the call to
 # gtk-query-immodules-3.0 dependent on the existence of
@@ -186,11 +198,9 @@ rm -rf %{buildroot}
 
 %post -n libgtk-3_0-0
 /sbin/ldconfig
-%if "%_lib" == "lib64"
-  test -f %{_bindir}/gtk-query-immodules-3.0-64 && %{_bindir}/gtk-query-immodules-3.0-64 --update-cache
-%else
-  test -f %{_bindir}/gtk-query-immodules-3.0 && %{_bindir}/gtk-query-immodules-3.0 --update-cache
-%endif
+if test -f %{GTK_QUERY_IMMODULES}; then
+  %{GTK_QUERY_IMMODULES} --update-cache
+fi
 
 # If we install gtk3-tools for the first time,
 # then we should run it in case libgtk-3_0-0 was installed
@@ -201,11 +211,7 @@ rm -rf %{buildroot}
 if [ $1 == 1 ]; then
   test -d %{_libdir}/gtk-3.0/3.0.0
   if test $? -eq 0; then
-    %if "%_lib" == "lib64"
-      %{_bindir}/gtk-query-immodules-3.0-64 --update-cache
-    %else
-      %{_bindir}/gtk-query-immodules-3.0 --update-cache
-    %endif
+    %{GTK_QUERY_IMMODULES} --update-cache
   fi
 fi