diff --git a/.gitignore b/.gitignore
index 2e46a98..5edddf6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-SOURCES/orc-0.4.22.tar.xz
+SOURCES/orc-0.4.26.tar.xz
diff --git a/.orc.metadata b/.orc.metadata
index 4c7902c..ebd50a1 100644
--- a/.orc.metadata
+++ b/.orc.metadata
@@ -1 +1 @@
-c50cf2f2a9a7e4ab400fd79f706e831ace1936bc SOURCES/orc-0.4.22.tar.xz
+8a735b48051facb35b2b2cc57e8e2014a1e25c8a SOURCES/orc-0.4.26.tar.xz
diff --git a/SOURCES/0001-compiler-also-prefer-the-backup-function-when-no-tar.patch b/SOURCES/0001-compiler-also-prefer-the-backup-function-when-no-tar.patch
deleted file mode 100644
index 51b2ea6..0000000
--- a/SOURCES/0001-compiler-also-prefer-the-backup-function-when-no-tar.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From ce99e244faff3cae27b2e3511febd8bdc5bd0e03 Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Mon, 7 Sep 2015 13:43:55 +0200
-Subject: [PATCH] compiler: also prefer the backup function when no target
-
-If we don't have a compiler target (like for ppc64), prefer to use the
-backup function instead of doing full emulation.
----
- orc/orccompiler.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/orc/orccompiler.c b/orc/orccompiler.c
-index 0086f77..0c2ff23 100644
---- a/orc/orccompiler.c
-+++ b/orc/orccompiler.c
-@@ -318,7 +318,7 @@ orc_program_compile_full (OrcProgram *program, OrcTarget *target,
-     program->orccode->vars[i].value = compiler->vars[i].value;
-   }
- 
--  if (program->backup_func && _orc_compiler_flag_backup) {
-+  if (program->backup_func && (_orc_compiler_flag_backup || target == NULL)) {
-     orc_compiler_error (compiler, "Compilation disabled, using backup");
-     compiler->result = ORC_COMPILE_RESULT_UNKNOWN_COMPILE;
-     goto error;
--- 
-2.4.3
-
diff --git a/SOURCES/0001-executor-fix-load-of-parameters-smaller-than-64-bits.patch b/SOURCES/0001-executor-fix-load-of-parameters-smaller-than-64-bits.patch
deleted file mode 100644
index 90bb37b..0000000
--- a/SOURCES/0001-executor-fix-load-of-parameters-smaller-than-64-bits.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From e2b4dd77dec4e3f471b59336ef99b1151638ad38 Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Mon, 7 Sep 2015 15:30:36 +0200
-Subject: [PATCH] executor: fix load of parameters smaller than 64 bits
-
-Parameters less than 64 bits are passed in just one param register.
-Fixes crashes on ldresnearb and friends in emulated code.
----
- orc/orcexecutor.c | 13 +++++++++----
- 1 file changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/orc/orcexecutor.c b/orc/orcexecutor.c
-index 6fe296d..6306d34 100644
---- a/orc/orcexecutor.c
-+++ b/orc/orcexecutor.c
-@@ -295,10 +295,15 @@ orc_executor_emulate (OrcExecutor *ex)
-       } else if (var->vartype == ORC_VAR_TYPE_PARAM) {
-         opcode_ex[j].src_ptrs[k] = tmpspace[insn->src_args[k]];
-         /* FIXME hack */
--        load_constant (tmpspace[insn->src_args[k]], 8,
--            (orc_uint64)(orc_uint32)ex->params[insn->src_args[k]] |
--            (((orc_uint64)(orc_uint32)ex->params[insn->src_args[k] +
--             (ORC_VAR_T1 - ORC_VAR_P1)])<<32));
-+        if (var->size == 8) {
-+          load_constant (tmpspace[insn->src_args[k]], 8,
-+              (orc_uint64)(orc_uint32)ex->params[insn->src_args[k]] |
-+              (((orc_uint64)(orc_uint32)ex->params[insn->src_args[k] +
-+               (ORC_VAR_T1 - ORC_VAR_P1)])<<32));
-+        } else {
-+          load_constant (tmpspace[insn->src_args[k]], 8,
-+              ex->params[insn->src_args[k]]);
-+        }
-       } else if (var->vartype == ORC_VAR_TYPE_TEMP) {
-         opcode_ex[j].src_ptrs[k] = tmpspace[insn->src_args[k]];
-       } else if (var->vartype == ORC_VAR_TYPE_SRC) {
--- 
-2.4.3
-
diff --git a/SOURCES/0001-orcc-program-c-fix-64-bit-parameter-loading-loadpq-o.patch b/SOURCES/0001-orcc-program-c-fix-64-bit-parameter-loading-loadpq-o.patch
deleted file mode 100644
index 8171ba1..0000000
--- a/SOURCES/0001-orcc-program-c-fix-64-bit-parameter-loading-loadpq-o.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 29486d8c98655a6e14ec2af9f71489cbdda41a53 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
-Date: Sat, 8 Nov 2014 13:23:12 +0000
-Subject: [PATCH] orcc: program-c: fix 64-bit parameter loading (loadpq) on
- big-endian systems
-
-When passing 64-bit parameters through OrcExecutor, we
-have to split them up into two 32-bit parameters for
-backwards compatibility reasons. When generating C code,
-make sure that we split up 64-bit parameters in the same
-way as loadpq will read them back later. The lower 32 bits
-should end up in params[ORC_VAR_D1+i] and the higher bits
-should end up in params[ORC_VAR_T1+i]. The way it was done
-so far, the higher/lower bits ended up swapped on big endian
-systems, and then got deserialised in swapped order by loadpq.
-This resulted in bogus parameters being used.
-
-In particular, this broke the gstreamer volume element and
-its unit tests on big endian systems when handling samples
-in F64 format (i.e. doubles).
-
-https://bugzilla.gnome.org/show_bug.cgi?id=739354
----
- tools/orcc.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/tools/orcc.c b/tools/orcc.c
-index d25b548..fdab530 100644
---- a/tools/orcc.c
-+++ b/tools/orcc.c
-@@ -843,9 +843,9 @@ output_code_execute (OrcProgram *p, FILE *output, int is_inline)
-           fprintf(output, "  {\n");
-           fprintf(output, "    orc_union64 tmp;\n");
-           fprintf(output, "    tmp.i = %s;\n", varnames[ORC_VAR_P1 + i]);
--          fprintf(output, "    ex->params[%s] = tmp.x2[0];\n",
-+          fprintf(output, "    ex->params[%s] = ((orc_uint64) tmp.i) & 0xffffffff;\n",
-               enumnames[ORC_VAR_P1 + i]);
--          fprintf(output, "    ex->params[%s] = tmp.x2[1];\n",
-+          fprintf(output, "    ex->params[%s] = ((orc_uint64) tmp.i) >> 32;\n",
-               enumnames[ORC_VAR_T1 + i]);
-           fprintf(output, "  }\n");
-           break;
-@@ -854,9 +854,9 @@ output_code_execute (OrcProgram *p, FILE *output, int is_inline)
-           fprintf(output, "  {\n");
-           fprintf(output, "    orc_union64 tmp;\n");
-           fprintf(output, "    tmp.f = %s;\n", varnames[ORC_VAR_P1 + i]);
--          fprintf(output, "    ex->params[%s] = tmp.x2[0];\n",
-+          fprintf(output, "    ex->params[%s] = ((orc_uint64) tmp.i) & 0xffffffff;\n",
-               enumnames[ORC_VAR_P1 + i]);
--          fprintf(output, "    ex->params[%s] = tmp.x2[1];\n",
-+          fprintf(output, "    ex->params[%s] = ((orc_uint64) tmp.i) >> 32;\n",
-               enumnames[ORC_VAR_T1 + i]);
-           fprintf(output, "  }\n");
-           break;
--- 
-2.4.3
-
diff --git a/SOURCES/0001-test-limits-improve-test-without-target.patch b/SOURCES/0001-test-limits-improve-test-without-target.patch
deleted file mode 100644
index b3662e1..0000000
--- a/SOURCES/0001-test-limits-improve-test-without-target.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 3298a5520d5ac4ec331b0b3b7a2211d4d94172cf Mon Sep 17 00:00:00 2001
-From: Wim Taymans <wtaymans@redhat.com>
-Date: Wed, 12 Aug 2015 13:16:28 +0200
-Subject: [PATCH] test-limits: improve test without target
-
-When there is no target available, the unit test would fail with a
-non-fatal error (because emulation would be done). The non-fatal error
-would however not be overwritten by the real error when we exceed the
-limits.
-
-First relax the first compilation test to check for FATAL errors. Then
-reset the program (and clear any non-fatal errors) before triggering
-the next error.
----
- testsuite/test-limits.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/testsuite/test-limits.c b/testsuite/test-limits.c
-index ed19d8a..0e43924 100644
---- a/testsuite/test-limits.c
-+++ b/testsuite/test-limits.c
-@@ -35,9 +35,11 @@ test_simple (int max, int (*adder) (OrcProgram *, int, const char *))
-   for (v = 0; v < max; v++)
-     (*adder) (p, 2, names + v);
-   result = orc_program_compile (p);
--  if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL (result))
-+  if (ORC_COMPILE_RESULT_IS_FATAL (result))
-     error = TRUE;
- 
-+  orc_program_reset (p);
-+
-   /* Check we can not add one more */
-   (*adder) (p, 2, names + v);
-   result = orc_program_compile (p);
--- 
-2.4.3
-
diff --git a/SOURCES/orc-selinux-tmplocation.patch b/SOURCES/orc-selinux-tmplocation.patch
deleted file mode 100644
index 228bbc1..0000000
--- a/SOURCES/orc-selinux-tmplocation.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-commit 0e31d7fc6a03faf1076dfd51b49401539c3ebed9
-Author: Fabian Deutsch <fabiand@fedoraproject.org>
-Date:   Tue Sep 2 10:38:17 2014 +0200
-
-    TMPDIR becomes the last option
-    
-    Previously $TMPDIR and /tmp were the first options to try to use for
-    intermediate files. To prevent name collisions, now user specific dirs ($HOME
-    and $XDG_RUNTIME_DIR) are prefered over the user unspecific dirs ($TMP and
-    /tmp).
-    
-    https://bugzilla.gnome.org/show_bug.cgi?id=735871
-
-diff --git a/orc/orccodemem.c b/orc/orccodemem.c
-index 7bb78d2..8bc2a48 100644
---- a/orc/orccodemem.c
-+++ b/orc/orccodemem.c
-@@ -266,21 +266,21 @@ orc_code_region_allocate_codemem (OrcCodeRegion *region)
- {
-   const char *tmpdir;
- 
--  tmpdir = getenv ("TMPDIR");
-+  tmpdir = getenv ("XDG_RUNTIME_DIR");
-   if (tmpdir && orc_code_region_allocate_codemem_dual_map (region,
-         tmpdir, FALSE)) return;
- 
--  if (orc_code_region_allocate_codemem_dual_map (region,
--        "/tmp", FALSE)) return;
--
--  tmpdir = getenv ("XDG_RUNTIME_DIR");
-+  tmpdir = getenv ("HOME");
-   if (tmpdir && orc_code_region_allocate_codemem_dual_map (region,
-         tmpdir, FALSE)) return;
- 
--  tmpdir = getenv ("HOME");
-+  tmpdir = getenv ("TMPDIR");
-   if (tmpdir && orc_code_region_allocate_codemem_dual_map (region,
-         tmpdir, FALSE)) return;
- 
-+  if (orc_code_region_allocate_codemem_dual_map (region,
-+        "/tmp", FALSE)) return;
-+
-   if (orc_code_region_allocate_codemem_anon_map (region)) return;
-   
-   ORC_ERROR("Failed to create write and exec mmap regions.  This "
diff --git a/SPECS/orc.spec b/SPECS/orc.spec
index d34ae7f..2d767d3 100644
--- a/SPECS/orc.spec
+++ b/SPECS/orc.spec
@@ -1,17 +1,12 @@
 Name:		orc
-Version:	0.4.22
-Release:	5%{?dist}
+Version:	0.4.26
+Release:	1%{?dist}
 Summary:	The Oil Run-time Compiler
 
 Group:		System Environment/Libraries
 License:	BSD
 URL:		http://cgit.freedesktop.org/gstreamer/orc/
 Source0:        http://gstreamer.freedesktop.org/src/orc/%{name}-%{version}.tar.xz
-Patch0:		orc-selinux-tmplocation.patch
-Patch1:         0001-orcc-program-c-fix-64-bit-parameter-loading-loadpq-o.patch
-Patch2:         0001-test-limits-improve-test-without-target.patch
-Patch3:         0001-compiler-also-prefer-the-backup-function-when-no-tar.patch
-Patch4:         0001-executor-fix-load-of-parameters-smaller-than-64-bits.patch
 
 BuildRequires:	gtk-doc, libtool
 
@@ -54,11 +49,6 @@ The Orc compiler, to produce optimized code.
 
 %prep
 %setup -q
-%patch0 -p1 -b .selinux
-%patch1 -p1 -b .orc
-%patch2 -p1 -b .orc2
-%patch3 -p1 -b .orc3
-%patch4 -p1 -b .orc4
 NOCONFIGURE=1 autoreconf -vif
 
 
@@ -104,6 +94,11 @@ touch -r stamp-h1 %{buildroot}%{_includedir}/%{name}-0.4/orc/orc-stdint.h
 
 
 %changelog
+* Thu Mar 09 2017 Wim Taymans <wtaymans@redhat.com> - 0.4.26-1
+- Update to 0.4.26
+- Remove upstreamed patches
+- Resolves: #1430051
+
 * Thu Aug 13 2015 Wim Taymans <wtaymans@redhat.com> - 0.4.22-5
 - Run backup functions on s390x instead of emulation
 - Fix load of parameters smaller than 64 bits
@@ -208,7 +203,7 @@ Resolves: 1048890
 * Thu Aug 19 2010 Fabian Deutsch <fabiand@fedoraproject.org> - 0.4.7-1
 - Updated to 0.4.7.
 
-* Tue Jul 22 2010 Fabian Deutsch <fabiand@fedoraproject.org> - 0.4.6-1
+* Thu Jul 22 2010 Fabian Deutsch <fabiand@fedoraproject.org> - 0.4.6-1
 - Updated to 0.4.6.
 - New orc-bugreport added.