diff --git a/.firefox.metadata b/.firefox.metadata
index 760237e..76333df 100644
--- a/.firefox.metadata
+++ b/.firefox.metadata
@@ -1,6 +1,6 @@
 511960dd78451a06c9df76509635aeec05b2051a SOURCES/Python-2.7.8.tgz
 467bdb846d67c01aed9e521fe0ef280065a50c3c SOURCES/devtoolset-2-binutils-2.23.52.0.1-10.el5.src.rpm
-2a4cf19b3c6833c3de368316172e1d0cb0d1d8db SOURCES/firefox-52.0esr.source.tar.xz
-19328387b4f4683675039416f524b6cf7fe3f5c8 SOURCES/firefox-langpacks-52.0esr-20170306.tar.xz
+ff1af08655356a4d94915ddca61188c14a249a74 SOURCES/firefox-52.1.0esr.source.tar.xz
+3670de55da29041f426c741c3a4baa6afa4b5cdb SOURCES/firefox-langpacks-52.1.0esr-20170419.tar.xz
 e5ba84786af5d0e0e23b1a9112c76821ef23306c SOURCES/gcc48-4.8.2-16.el5.src.rpm
 77fd30f7ebc12a629a31c1e252cec06af55a71fe SOURCES/yasm-1.2.0-3.el5.src.rpm
diff --git a/.gitignore b/.gitignore
index 701381d..a2a9cce 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,6 @@
 SOURCES/Python-2.7.8.tgz
 SOURCES/devtoolset-2-binutils-2.23.52.0.1-10.el5.src.rpm
-SOURCES/firefox-52.0esr.source.tar.xz
-SOURCES/firefox-langpacks-52.0esr-20170306.tar.xz
+SOURCES/firefox-52.1.0esr.source.tar.xz
+SOURCES/firefox-langpacks-52.1.0esr-20170419.tar.xz
 SOURCES/gcc48-4.8.2-16.el5.src.rpm
 SOURCES/yasm-1.2.0-3.el5.src.rpm
diff --git a/SOURCES/build-nss-version.patch b/SOURCES/build-nss-version.patch
index de5ceca..36c2632 100644
--- a/SOURCES/build-nss-version.patch
+++ b/SOURCES/build-nss-version.patch
@@ -5,7 +5,7 @@ diff -up firefox-52.0esr/old-configure.in.nss-ver firefox-52.0esr/old-configure.
      _USE_SYSTEM_NSS=1 )
  
  if test -n "$_USE_SYSTEM_NSS"; then
--    AM_PATH_NSS(3.28.3, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
+-    AM_PATH_NSS(3.28.4, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
 +    AM_PATH_NSS(3.28.1, [MOZ_SYSTEM_NSS=1], [AC_MSG_ERROR([you don't have NSS installed or your version is too old])])
  fi
  
diff --git a/SOURCES/build-s390-missing-include.patch b/SOURCES/build-s390-missing-include.patch
new file mode 100644
index 0000000..59157e6
--- /dev/null
+++ b/SOURCES/build-s390-missing-include.patch
@@ -0,0 +1,11 @@
+diff -up firefox-52.1.0esr/dom/filesystem/compat/FileSystemDirectoryReader.h.s390-build-includes-fix firefox-52.1.0esr/dom/filesystem/compat/FileSystemDirectoryReader.h
+--- firefox-52.1.0esr/dom/filesystem/compat/FileSystemDirectoryReader.h.s390-build-includes-fix	2017-04-12 09:31:39.419402551 +0200
++++ firefox-52.1.0esr/dom/filesystem/compat/FileSystemDirectoryReader.h	2017-04-12 09:31:53.392340589 +0200
+@@ -11,6 +11,7 @@
+ #include "mozilla/ErrorResult.h"
+ #include "mozilla/dom/BindingDeclarations.h"
+ #include "nsCycleCollectionParticipant.h"
++#include "mozilla/dom/FileSystemDirectoryEntry.h"
+ #include "nsWrapperCache.h"
+ 
+ namespace mozilla {
diff --git a/SOURCES/firefox-centos-default-prefs.js b/SOURCES/firefox-centos-default-prefs.js
deleted file mode 100644
index fd3108f..0000000
--- a/SOURCES/firefox-centos-default-prefs.js
+++ /dev/null
@@ -1,27 +0,0 @@
-pref("app.update.auto",                     false);
-pref("app.update.enabled",                  false);
-pref("app.update.autoInstallEnabled",       false);
-pref("browser.backspace_action",            2);
-pref("browser.display.use_system_colors",   true);
-pref("browser.download.folderList",         1);
-pref("browser.link.open_external",          3);
-pref("browser.shell.checkDefaultBrowser",   false);
-pref("general.smoothScroll",                true);
-pref("general.useragent.vendor",            "CentOS");
-pref("general.useragent.vendorSub",         "FIREFOX_RPM_VR");
-pref("intl.locale.matchOS",                 true);
-pref("storage.nfs_filesystem",              false);
-pref("dom.ipc.plugins.enabled.nswrapper*",  false);
-pref("network.manage-offline-status",       true);
-pref("toolkit.networkmanager.disable",      false);
-pref("browser.startup.homepage",            "data:text/plain,browser.startup.homepage=file:///usr/share/doc/HTML/index.html");
-pref("toolkit.storage.synchronous",         0);
-pref("startup.homepage_override_url",       "http://www.centos.org");
-pref("startup.homepage_welcome_url",        "http://www.centos.org");
-pref("extensions.shownSelectionUI",         true);
-/* Workaround for rhbz#1110291 */
-pref("network.negotiate-auth.allow-insecure-ntlm-v1", true);
-/* Workaround for mozbz#1063315 */
-pref("security.use_mozillapkix_verification", false);
-pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
-pref("browser.tabs.remote.autostart",       false);
diff --git a/SOURCES/firefox-redhat-default-prefs.js b/SOURCES/firefox-redhat-default-prefs.js
new file mode 100644
index 0000000..02113f4
--- /dev/null
+++ b/SOURCES/firefox-redhat-default-prefs.js
@@ -0,0 +1,27 @@
+pref("app.update.auto",                     false);
+pref("app.update.enabled",                  false);
+pref("app.update.autoInstallEnabled",       false);
+pref("browser.backspace_action",            2);
+pref("browser.display.use_system_colors",   true);
+pref("browser.download.folderList",         1);
+pref("browser.link.open_external",          3);
+pref("browser.shell.checkDefaultBrowser",   false);
+pref("general.smoothScroll",                true);
+pref("general.useragent.vendor",            "Red Hat");
+pref("general.useragent.vendorSub",         "FIREFOX_RPM_VR");
+pref("intl.locale.matchOS",                 true);
+pref("storage.nfs_filesystem",              false);
+pref("dom.ipc.plugins.enabled.nswrapper*",  false);
+pref("network.manage-offline-status",       true);
+pref("toolkit.networkmanager.disable",      false);
+pref("browser.startup.homepage",            "data:text/plain,browser.startup.homepage=file:///usr/share/doc/HTML/index.html");
+pref("toolkit.storage.synchronous",         0);
+pref("startup.homepage_override_url",       "http://www.redhat.com");
+pref("startup.homepage_welcome_url",        "http://www.redhat.com");
+pref("extensions.shownSelectionUI",         true);
+/* Workaround for rhbz#1110291 */
+pref("network.negotiate-auth.allow-insecure-ntlm-v1", true);
+/* Workaround for mozbz#1063315 */
+pref("security.use_mozillapkix_verification", false);
+pref("geo.wifi.uri", "https://location.services.mozilla.com/v1/geolocate?key=%MOZILLA_API_KEY%");
+pref("browser.tabs.remote.autostart",       false);
diff --git a/SOURCES/mozilla-1348168.patch b/SOURCES/mozilla-1348168.patch
deleted file mode 100644
index e0627d2..0000000
--- a/SOURCES/mozilla-1348168.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-
-# HG changeset patch
-# User Ehsan Akhgari <ehsan@mozilla.com>
-# Date 1489719163 14400
-# Node ID 4af7cd795eeef3bce2dd40d5a6e92d21304eaea1
-# Parent  dac467924a46c4bbff97c948bf4a7143dada2b19
-Bug 1348168 - Disable Mozilla custom ImageBitmap extensions that didn't go through proper API review; r=bzbarsky a=dveditz
-
-diff --git a/dom/base/nsGlobalWindow.cpp b/dom/base/nsGlobalWindow.cpp
---- a/dom/base/nsGlobalWindow.cpp
-+++ b/dom/base/nsGlobalWindow.cpp
-@@ -14993,16 +14993,20 @@ nsGlobalWindow::CreateImageBitmap(const 
- 
- already_AddRefed<mozilla::dom::Promise>
- nsGlobalWindow::CreateImageBitmap(const ImageBitmapSource& aImage,
-                                   int32_t aOffset, int32_t aLength,
-                                   ImageBitmapFormat aFormat,
-                                   const Sequence<ChannelPixelLayout>& aLayout,
-                                   ErrorResult& aRv)
- {
-+  if (!ImageBitmap::ExtensionsEnabled(nullptr, nullptr)) {
-+    aRv.Throw(NS_ERROR_TYPE_ERR);
-+    return nullptr;
-+  }
-   if (aImage.IsArrayBuffer() || aImage.IsArrayBufferView()) {
-     return ImageBitmap::Create(this, aImage, aOffset, aLength, aFormat, aLayout,
-                                aRv);
-   } else {
-     aRv.Throw(NS_ERROR_TYPE_ERR);
-     return nullptr;
-   }
- }
-diff --git a/dom/workers/WorkerScope.cpp b/dom/workers/WorkerScope.cpp
---- a/dom/workers/WorkerScope.cpp
-+++ b/dom/workers/WorkerScope.cpp
-@@ -471,16 +471,24 @@ WorkerGlobalScope::CreateImageBitmap(con
- 
- already_AddRefed<mozilla::dom::Promise>
- WorkerGlobalScope::CreateImageBitmap(const ImageBitmapSource& aImage,
-                                      int32_t aOffset, int32_t aLength,
-                                      ImageBitmapFormat aFormat,
-                                      const Sequence<ChannelPixelLayout>& aLayout,
-                                      ErrorResult& aRv)
- {
-+  JSContext* cx = GetCurrentThreadJSContext();
-+  MOZ_ASSERT(cx);
-+
-+  if (!ImageBitmap::ExtensionsEnabled(cx, nullptr)) {
-+    aRv.Throw(NS_ERROR_TYPE_ERR);
-+    return nullptr;
-+  }
-+
-   if (aImage.IsArrayBuffer() || aImage.IsArrayBufferView()) {
-     return ImageBitmap::Create(this, aImage, aOffset, aLength, aFormat, aLayout,
-                                aRv);
-   } else {
-     aRv.Throw(NS_ERROR_TYPE_ERR);
-     return nullptr;
-   }
- }
-diff --git a/modules/libpref/init/all.js b/modules/libpref/init/all.js
---- a/modules/libpref/init/all.js
-+++ b/modules/libpref/init/all.js
-@@ -831,22 +831,18 @@ pref("ui.scrollToClick", 0);
- pref("canvas.focusring.enabled", true);
- pref("canvas.customfocusring.enabled", false);
- pref("canvas.hitregions.enabled", false);
- pref("canvas.filters.enabled", true);
- // Add support for canvas path objects
- pref("canvas.path.enabled", true);
- pref("canvas.capturestream.enabled", true);
- 
--// Disable the ImageBitmap-extensions in the release build.
--#ifdef RELEASE_OR_BETA
-+// Disable the ImageBitmap-extensions for now.
- pref("canvas.imagebitmap_extensions.enabled", false);
--#else
--pref("canvas.imagebitmap_extensions.enabled", true);
--#endif
- 
- // We want the ability to forcibly disable platform a11y, because
- // some non-a11y-related components attempt to bring it up.  See bug
- // 538530 for details about Windows; we have a pref here that allows it
- // to be disabled for performance and testing resons.
- // See bug 761589 for the crossplatform aspect.
- //
- // This pref is checked only once, and the browser needs a restart to
-
diff --git a/SPECS/firefox.spec b/SPECS/firefox.spec
index 7ff05a0..fdb0173 100644
--- a/SPECS/firefox.spec
+++ b/SPECS/firefox.spec
@@ -76,8 +76,8 @@
 
 Summary:        Mozilla Firefox Web browser
 Name:           firefox
-Version:        52.0
-Release:        5%{?dist}
+Version:        52.1.0
+Release:        2%{?dist}
 URL:            http://www.mozilla.org/projects/firefox/
 License:        MPLv1.1 or GPLv2+ or LGPLv2+
 Group:          Applications/Internet
@@ -88,10 +88,10 @@ Group:          Applications/Internet
 # From ftp://archive.mozilla.org/pub/firefox/releases/%{version}%{?ext_version}/source
 Source0:        firefox-%{version}%{?ext_version}.source.tar.xz
 %if %{build_langpacks}
-Source1:        firefox-langpacks-%{version}%{?ext_version}-20170306.tar.xz
+Source1:        firefox-langpacks-%{version}%{?ext_version}-20170419.tar.xz
 %endif
 Source10:       firefox-mozconfig
-Source12:       firefox-centos-default-prefs.js
+Source12:       firefox-redhat-default-prefs.js
 Source20:       firefox.desktop
 Source600:      firefox.sh.in.rhel6
 Source700:      firefox.sh.in.rhel7
@@ -108,7 +108,7 @@ Patch0:         firefox-install-dir.patch
 Patch5:         xulrunner-24.0-jemalloc-ppc.patch
 Patch6:         webrtc-arch-cpu.patch
 Patch8:         firefox-ppc64le.patch
-#ALREADY Patch19:        mozilla-1319374-skia-endian.patch
+Patch9:         build-s390-missing-include.patch
 Patch20:        build-s390-atomic.patch
 Patch21:        build-icu-big-endian.patch
 Patch22:        build-missing-getrandom.patch
@@ -126,18 +126,14 @@ Patch111:       rhbz-1173156.patch
 Patch112:       mozilla-256180.patch
 Patch113:       rhbz-1414535.patch
 Patch114:       rhbz-1423012.patch
-Patch115:       mozilla-1348168.patch
 
 # Upstream patches
-# Skia support for big endian platforms, since patch got review- I think we can delete that:
-#Patch201:       mozilla-1005535.patch
 # Kaie's patch, we'll most likely need this one
 Patch202:       mozilla-1152515.patch
 
 # RHEL7 patches
 
 # RHEL6 patches
-# HOPEFULY fixed Patch401:       build-el6-harfbuzz-old-glib.patch
 
 # ---------------------------------------------------
 BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
@@ -364,7 +360,7 @@ cd %{tarballdir}
 %patch5 -p1 -b .jemalloc-ppc.patch
 %patch6 -p1 -b .webrtc-arch-cpu
 %patch8 -p2 -b .ppc64le
-#ALREADY %patch19 -p1 -b .skia-endian
+%patch9 -p1 -b .s390-missing-include
 %patch20 -p1 -b .s390-atomic
 %patch22 -p1 -b .missing-getrandom
 %patch23 -p1 -b .nss-version
@@ -380,19 +376,16 @@ cd %{tarballdir}
 %patch112 -p1 -b .mozbz-256180
 %patch113 -p1 -b .rhbz-1414535
 %patch114 -p1 -b .rhbz-1423012
-%patch115 -p1 -b .mozbz-1348168
 
 # Upstream patches
-#%patch201 -p1 -b .mozbz-1005535 see Patch201 comment
 %patch202 -p1 -b .mozbz-1152515
 
 # RHEL7 only patches
 %if %{?rhel} == 7
 %endif
 
-#%if %{?rhel} == 6
-#HOPEFULY FIXED %patch401 -p1 -b .harfbuzz-old-glib
-#%endif
+%if %{?rhel} == 6
+%endif
 
 # Patch for big endian platforms only
 %if 0%{?big_endian}
@@ -882,8 +875,11 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 #---------------------------------------------------------------------
 
 %changelog
-* Sat Mar 18 2017 Johnny Hughes <johnny@centos.org> - 52.0-5
-- Manual Debranding after Auto Debranding failed.
+* Wed Apr 19 2017 Martin Stransky <stransky@redhat.com> - 52.1.0-2
+- Update to 52.1.0 ESR (Build3)
+
+* Tue Apr 11 2017 Jan Horak <jhorak@redhat.com> - 52.1.0-1
+- Update to 52.1.0 ESR
 
 * Fri Mar 17 2017 Martin Stransky <stransky@redhat.com> - 52.0-5
 - Added fix for mozbz#1348168/CVE-2017-5428