diff --git a/.gitignore b/.gitignore
index 2882b93..f754f28 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/inkscape-0.48.4.tar.bz2
+SOURCES/inkscape-0.91.tar.bz2
diff --git a/.inkscape.metadata b/.inkscape.metadata
index 85975d4..4c39f25 100644
--- a/.inkscape.metadata
+++ b/.inkscape.metadata
@@ -1 +1 @@
-5f26f6ad191d1e7c2a9fb69a438722beb172224c SOURCES/inkscape-0.48.4.tar.bz2
+9941ee467af570ac71a70f965cd9c48d4993b8f3 SOURCES/inkscape-0.91.tar.bz2
diff --git a/SOURCES/inkscape-0.48.4-libwpg.patch b/SOURCES/inkscape-0.48.4-libwpg.patch
deleted file mode 100644
index c745143..0000000
--- a/SOURCES/inkscape-0.48.4-libwpg.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 127777fe3298bcdfe45d74b36f77b8238ebb6937 Mon Sep 17 00:00:00 2001
-From: David Tardon <dtardon@redhat.com>
-Date: Tue, 27 May 2014 16:47:39 +0200
-Subject: [PATCH] switch to librevenge-based import libs
-
----
- configure.ac                         | 19 ++---------------
- src/extension/internal/wpg-input.cpp | 41 ++++++++++++------------------------
- 2 files changed, 15 insertions(+), 45 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index fcff879..4bce58c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -676,23 +676,8 @@ dnl ******************************
- 
- with_libwpg=no
- 
--PKG_CHECK_MODULES(LIBWPG01, libwpg-0.1 libwpg-stream-0.1, with_libwpg01=yes, with_libwpg01=no)
--if test "x$with_libwpg01" = "xyes"; then
--	AC_DEFINE(WITH_LIBWPG01,1,[Build in libwpg 0.1.x])
--	with_libwpg=yes
--	AC_SUBST(LIBWPG_LIBS, $LIBWPG01_LIBS)
--	AC_SUBST(LIBWPG_CFLAGS, $LIBWPG01_CFLAGS)
--fi
--AM_CONDITIONAL(WITH_LIBWPG01, test "x$with_libwpg01" = "xyes")
--
--PKG_CHECK_MODULES(LIBWPG02, libwpg-0.2 libwpd-0.9 libwpd-stream-0.9, with_libwpg02=yes, with_libwpg02=no)
--if test "x$with_libwpg02" = "xyes"; then
--	AC_DEFINE(WITH_LIBWPG02,1,[Build in libwpg 0.2.x])
--	with_libwpg=yes
--	AC_SUBST(LIBWPG_LIBS, $LIBWPG02_LIBS)
--	AC_SUBST(LIBWPG_CFLAGS, $LIBWPG02_CFLAGS)
--fi
--AM_CONDITIONAL(WITH_LIBWPG02, test "x$with_libwpg02" = "xyes")
-+PKG_CHECK_MODULES(LIBWPG, libwpg-0.3 librevenge-0.0 librevenge-stream-0.0, with_libwpg=yes, with_libwpg=no)
-+AM_CONDITIONAL(WITH_LIBWPG01, test "x$with_libwpg" = "xyes")
- 
- if test "x$with_libwpg" = "xyes"; then
- 	AC_DEFINE(WITH_LIBWPG,1,[Build in libwpg])
-diff --git a/src/extension/internal/wpg-input.cpp b/src/extension/internal/wpg-input.cpp
-index 5c5cb65..71c7b44 100644
---- a/src/extension/internal/wpg-input.cpp
-+++ b/src/extension/internal/wpg-input.cpp
-@@ -48,17 +48,8 @@
- #include "extension/input.h"
- #include "document.h"
- 
--// Take a guess and fallback to 0.1.x if no configure has run
--#if !defined(WITH_LIBWPG01) && !defined(WITH_LIBWPG02)
--#define WITH_LIBWPG01 1
--#endif
--
- #include "libwpg/libwpg.h"
--#if WITH_LIBWPG01
--#include "libwpg/WPGStreamImplementation.h"
--#elif WITH_LIBWPG02
--#include "libwpd-stream/libwpd-stream.h"
--#endif
-+#include "librevenge-stream/librevenge-stream.h"
- 
- using namespace libwpg;
- 
-@@ -69,17 +60,9 @@ namespace Internal {
- 
- SPDocument *
- WpgInput::open(Inkscape::Extension::Input * mod, const gchar * uri) {
--#if WITH_LIBWPG01
--    WPXInputStream* input = new libwpg::WPGFileStream(uri);
--#elif WITH_LIBWPG02
--    WPXInputStream* input = new WPXFileStream(uri);
--#endif
--    if (input->isOLEStream()) {
--#if WITH_LIBWPG01
--        WPXInputStream* olestream = input->getDocumentOLEStream();
--#elif WITH_LIBWPG02
--        WPXInputStream* olestream = input->getDocumentOLEStream("PerfectOffice_MAIN");
--#endif
-+    librevenge::RVNGInputStream* input = new librevenge::RVNGFileStream(uri);
-+    if (input->isStructured()) {
-+        librevenge::RVNGInputStream* olestream = input->getSubStreamByName("PerfectOffice_MAIN");
-         if (olestream) {
-             delete input;
-             input = olestream;
-@@ -94,15 +77,17 @@ WpgInput::open(Inkscape::Extension::Input * mod, const gchar * uri) {
-         return NULL;
-     }
- 
--#if WITH_LIBWPG01
--    libwpg::WPGString output;
--#elif WITH_LIBWPG02
--    WPXString output;
--#endif
--    if (!libwpg::WPGraphics::generateSVG(input, output)) {
-+	librevenge::RVNGStringVector vec;
-+	librevenge::RVNGSVGDrawingGenerator generator(vec, "");
-+
-+	if (!libwpg::WPGraphics::parse(input, &generator) || vec.empty() || vec[0].empty())
-+ 	{
-         delete input;
-         return NULL;
--    }
-+ 	}
-+
-+    librevenge::RVNGString output("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n");
-+	output.append(vec[0]);
- 
-     //printf("I've got a doc: \n%s", painter.document.c_str());
- 
--- 
-1.9.3
-
diff --git a/SOURCES/inkscape-0.48.4-spsvg-remove.path b/SOURCES/inkscape-0.48.4-spsvg-remove.path
deleted file mode 100644
index 60978c1..0000000
--- a/SOURCES/inkscape-0.48.4-spsvg-remove.path
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -up inkscape-0.48.4/share/extensions/Makefile.am.spsvg inkscape-0.48.4/share/extensions/Makefile.am
---- inkscape-0.48.4/share/extensions/Makefile.am.spsvg	2014-02-26 17:56:45.994187644 +0100
-+++ inkscape-0.48.4/share/extensions/Makefile.am	2014-02-26 17:56:51.834186672 +0100
-@@ -124,7 +124,6 @@ extensions = \
- 	simpletransform.py \
- 	sk1_output.py \
- 	sk2svg.sh \
--	SpSVG.pm \
- 	spirograph.py\
- 	split.py \
- 	straightseg.py \
diff --git a/SOURCES/inkscape-0.48.4-spuriouscomma.h b/SOURCES/inkscape-0.48.4-spuriouscomma.h
deleted file mode 100644
index bc53806..0000000
--- a/SOURCES/inkscape-0.48.4-spuriouscomma.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/widgets/desktop-widget.h~	2011-07-08 13:25:09.000000000 -0500
-+++ src/widgets/desktop-widget.h	2013-02-15 16:04:45.806910365 -0600
-@@ -239,7 +239,7 @@
- private:
-     GtkWidget *tool_toolbox;
-     GtkWidget *aux_toolbox;
--    GtkWidget *commands_toolbox,;
-+    GtkWidget *commands_toolbox;
-     GtkWidget *snap_toolbox;
- 
-     static void init(SPDesktopWidget *widget);
diff --git a/SOURCES/inkscape-0.91-desktop.patch b/SOURCES/inkscape-0.91-desktop.patch
new file mode 100644
index 0000000..eff5206
--- /dev/null
+++ b/SOURCES/inkscape-0.91-desktop.patch
@@ -0,0 +1,11 @@
+--- inkscape-0.91/inkscape.desktop.in~	2015-01-29 09:53:06.000000000 -0600
++++ inkscape-0.91/inkscape.desktop.in	2015-01-29 09:54:08.680065820 -0600
+@@ -14,7 +14,7 @@
+ Icon=inkscape
+ X-Ayatana-Desktop-Shortcuts=Drawing
+ 
+-[Drawing Shortcut Group]
++[X-Drawing Shortcut Group]
+ _Name=New Drawing
+ Exec=inkscape
+ TargetEnvironment=Unity
diff --git a/SOURCES/poppler.patch b/SOURCES/poppler.patch
deleted file mode 100644
index 9e37a41..0000000
--- a/SOURCES/poppler.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-commit 6f7d0e79120a973eb4a17abbd8ac5bef6be06804
-Author: Matthias Kilian <Unknown>
-Date:   Wed Jun 4 15:01:44 2014 +0200
-
-    Fix build failure with poppler 0.26 (Bug #1315142)
-
-diff --git a/configure.ac b/configure.ac
-index 712aa68..f78668d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -491,6 +491,11 @@ else
- 	AC_MSG_RESULT(no)
- fi
- 
-+PKG_CHECK_MODULES(POPPLER_EVEN_NEWER_COLOR_SPACE_API, poppler >= 0.26.0, popplernewercolorspaceapi=yes, popplernewercolorspaceapi=no)
-+if test "x$popplernewercolorspaceapi" = "xyes"; then
-+	AC_DEFINE(POPPLER_EVEN_NEWER_COLOR_SPACE_API, 1, [Use even newer color space API from Poppler >= 0.26.0])
-+fi
-+
- # Poppler's b604a008 commit changes this
- AC_MSG_CHECKING([whether Poppler's GfxPatch no longer uses GfxColor])
- popplergfxcolor="no"
-diff --git a/src/extension/internal/pdfinput/pdf-parser.cpp b/src/extension/internal/pdfinput/pdf-parser.cpp
-index b398486..c5f03e5 100644
---- a/src/extension/internal/pdfinput/pdf-parser.cpp
-+++ b/src/extension/internal/pdfinput/pdf-parser.cpp
-@@ -866,7 +866,9 @@ void PdfParser::opSetExtGState(Object args[], int /*numArgs*/)
- 	  blendingColorSpace = NULL;
- 	  isolated = knockout = gFalse;
- 	  if (!obj4.dictLookup(const_cast<char*>("CS"), &obj5)->isNull()) {
--#if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-+#if defined(POPPLER_EVEN_NEWER_COLOR_SPACE_API)
-+	    blendingColorSpace = GfxColorSpace::parse(&obj5, NULL, NULL);
-+#elif defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
- 	    blendingColorSpace = GfxColorSpace::parse(&obj5, NULL);
- #else
- 	    blendingColorSpace = GfxColorSpace::parse(&obj5);
-@@ -1100,7 +1102,13 @@ void PdfParser::opSetFillColorSpace(Object args[], int /*numArgs*/)
- 
-   state->setFillPattern(NULL);
-   res->lookupColorSpace(args[0].getName(), &obj);
--#if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-+#if defined(POPPLER_EVEN_NEWER_COLOR_SPACE_API)
-+  if (obj.isNull()) {
-+    colorSpace = GfxColorSpace::parse(&args[0], NULL, NULL);
-+  } else {
-+    colorSpace = GfxColorSpace::parse(&obj, NULL, NULL);
-+  }
-+#elif defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-   if (obj.isNull()) {
-     colorSpace = GfxColorSpace::parse(&args[0], NULL);
-   } else {
-@@ -1137,7 +1145,13 @@ void PdfParser::opSetStrokeColorSpace(Object args[], int /*numArgs*/)
- 
-   state->setStrokePattern(NULL);
-   res->lookupColorSpace(args[0].getName(), &obj);
--#if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-+#if defined(POPPLER_EVEN_NEWER_COLOR_SPACE_API)
-+  if (obj.isNull()) {
-+    colorSpace = GfxColorSpace::parse(&args[0], NULL, NULL);
-+  } else {
-+    colorSpace = GfxColorSpace::parse(&obj, NULL, NULL);
-+  }
-+#elif defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-   if (obj.isNull()) {
-     colorSpace = GfxColorSpace::parse(&args[0], NULL);
-   } else {
-@@ -1231,7 +1245,13 @@ void PdfParser::opSetFillColorN(Object args[], int numArgs) {
-       state->setFillColor(&color);
-       builder->updateStyle(state);
-     }
--#if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-+#if defined(POPPLER_EVEN_NEWER_COLOR_SPACE_API)
-+    if (args[numArgs-1].isName() &&
-+	(pattern = res->lookupPattern(args[numArgs-1].getName(), NULL, NULL))) {
-+      state->setFillPattern(pattern);
-+      builder->updateStyle(state);
-+    }
-+#elif defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-     if (args[numArgs-1].isName() &&
- 	(pattern = res->lookupPattern(args[numArgs-1].getName(), NULL))) {
-       state->setFillPattern(pattern);
-@@ -1291,7 +1311,13 @@ void PdfParser::opSetStrokeColorN(Object args[], int numArgs) {
-       state->setStrokeColor(&color);
-       builder->updateStyle(state);
-     }
--#if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-+#if defined(POPPLER_EVEN_NEWER_COLOR_SPACE_API)
-+    if (args[numArgs-1].isName() &&
-+	(pattern = res->lookupPattern(args[numArgs-1].getName(), NULL, NULL))) {
-+      state->setStrokePattern(pattern);
-+      builder->updateStyle(state);
-+    }
-+#elif defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-     if (args[numArgs-1].isName() &&
- 	(pattern = res->lookupPattern(args[numArgs-1].getName(), NULL))) {
-       state->setStrokePattern(pattern);
-@@ -1746,7 +1772,11 @@ void PdfParser::opShFill(Object args[], int /*numArgs*/)
-   double *matrix = NULL;
-   GBool savedState = gFalse;
- 
--#if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-+#if defined(POPPLER_EVEN_NEWER_COLOR_SPACE_API)
-+  if (!(shading = res->lookupShading(args[0].getName(), NULL, NULL))) {
-+    return;
-+  }
-+#elif defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-   if (!(shading = res->lookupShading(args[0].getName(), NULL))) {
-     return;
-   }
-@@ -2817,7 +2847,9 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, GBool inlineImg)
-       }
-     }
-     if (!obj1.isNull()) {
--#if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-+#if defined(POPPLER_EVEN_NEWER_COLOR_SPACE_API)
-+      colorSpace = GfxColorSpace::parse(&obj1, NULL, NULL);
-+#elif defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-       colorSpace = GfxColorSpace::parse(&obj1, NULL);
- #else
-       colorSpace = GfxColorSpace::parse(&obj1);
-@@ -2909,7 +2941,9 @@ void PdfParser::doImage(Object * /*ref*/, Stream *str, GBool inlineImg)
- 	  obj2.free();
- 	}
-       }
--#if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-+#if defined(POPPLER_EVEN_NEWER_COLOR_SPACE_API)
-+      maskColorSpace = GfxColorSpace::parse(&obj1, NULL, NULL);
-+#elif defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-       maskColorSpace = GfxColorSpace::parse(&obj1, NULL);
- #else
-       maskColorSpace = GfxColorSpace::parse(&obj1);
-@@ -3099,7 +3133,9 @@ void PdfParser::doForm(Object *str) {
-     if (obj1.dictLookup(const_cast<char*>("S"), &obj2)->isName(const_cast<char*>("Transparency"))) {
-       transpGroup = gTrue;
-       if (!obj1.dictLookup(const_cast<char*>("CS"), &obj3)->isNull()) {
--#if defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
-+#if defined(POPPLER_EVEN_NEWER_COLOR_SPACE_API)
-+	blendingColorSpace = GfxColorSpace::parse(&obj3, NULL, NULL);
-+#elif defined(POPPLER_NEW_COLOR_SPACE_API) || defined(POPPLER_NEW_ERRORAPI)
- 	blendingColorSpace = GfxColorSpace::parse(&obj3, NULL);
- #else
- 	blendingColorSpace = GfxColorSpace::parse(&obj3);
diff --git a/SPECS/inkscape.spec b/SPECS/inkscape.spec
index bf5b891..1810d40 100644
--- a/SPECS/inkscape.spec
+++ b/SPECS/inkscape.spec
@@ -1,6 +1,6 @@
 Name:           inkscape
-Version:        0.48.4
-Release:        15%{?dist}
+Version:        0.91
+Release:        2%{?dist}
 Summary:        Vector-based drawing program using SVG
 
 Group:          Applications/Productivity
@@ -8,10 +8,7 @@ License:        GPLv2+
 URL:            http://inkscape.sourceforge.net/
 Source0:        http://downloads.sourceforge.net/inkscape/%{name}-%{version}.tar.bz2
 Patch0:         inkscape-0.48.2-types.patch
-Patch10:        inkscape-0.48.4-spuriouscomma.h
-Patch11:        inkscape-0.48.4-spsvg-remove.path
-Patch12:        inkscape-0.48.4-libwpg.patch
-Patch14:        poppler.patch
+Patch15:        inkscape-0.91-desktop.patch
 
 %if 0%{?fedora} && 0%{?fedora} < 18
 %define desktop_vendor fedora
@@ -123,10 +120,7 @@ graphics in W3C standard Scalable Vector Graphics (SVG) file format.
 %prep
 %setup -q
 %patch0 -p1 -b .types
-%patch10 -p0 -b .spuriouscomma
-%patch11 -p1 -b .spsvg
-%patch12 -p1 -b .libwpg
-%patch14 -p1 -b .poppler
+%patch15 -p1 -b .desktop
 
 # https://bugs.launchpad.net/inkscape/+bug/314381
 # A couple of files have executable bits set,
@@ -138,10 +132,13 @@ find share/extensions -name '*.py' | xargs chmod -x
 # Fix end of line encodings
 dos2unix -k -q share/extensions/*.py
 
-autoreconf -i
-
 
 %build
+# --disable-strict-build is needed due to gtkmm using a deprecated glibmm
+# method: https://lists.fedoraproject.org/pipermail/devel/2015-July/212652.html
+# If upstream gtkmm fixes https://bugzilla.gnome.org/show_bug.cgi?id=752797
+# this can be removed.
+export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -std=c++11 -fno-strict-overflow"
 export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
 export CXXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
 
@@ -197,7 +194,9 @@ fi
 %defattr(-,root,root,-)
 %{_bindir}/inkscape
 %dir %{_datadir}/inkscape
-%{_datadir}/inkscape/clipart
+%{_datadir}/inkscape/attributes
+%{_datadir}/inkscape/branding
+%{_datadir}/inkscape/symbols
 %{_datadir}/inkscape/extensions
 %{_datadir}/inkscape/filters
 %{_datadir}/inkscape/fonts
@@ -233,6 +232,9 @@ fi
 
 
 %changelog
+* Fri Apr  1 2016 Jan Horak <jhorak@redhat.com> - 0.91-2
+- Rebase to version 0.91
+
 * Tue Jul 21 2015 Jan Horak <jhorak@redhat.com> - 0.48.4-15
 - Building without gnome-vfs