diff --git a/.firefox.metadata b/.firefox.metadata
index 8c8247f..153ee7d 100644
--- a/.firefox.metadata
+++ b/.firefox.metadata
@@ -1,7 +1,7 @@
 18a8f30a0356c751b8d0ea6f76e764cab13ee046 SOURCES/Python-2.7.13.tar.xz
 a9effcc06cf80eaa22f12c1f7d6aa4266a1c4966 SOURCES/cbindgen-vendor-0.14.3.tar.xz
-f2e0607bf57105e8741c0f941bcacee8a75d672a SOURCES/firefox-78.3.0esr.source.tar.xz
-444ca305428fc4778a7252f3cdc2e65495921dcd SOURCES/firefox-langpacks-78.3.0esr-20200918.tar.xz
+4cf96aeedca03d6f84ade360aeb43cae4819342a SOURCES/firefox-78.4.0esr.source.tar.xz
+3efe91763e5fe2f5c608e1d77b0322dfbbbab45c SOURCES/firefox-langpacks-78.4.0esr-20201016.tar.xz
 0de63f863b158454b9429234b52ed28a397ec45c SOURCES/gtk3-private-3.22.26-1.el6.src.rpm
 e188ab1a444697bc649e223c28389d82ca94c472 SOURCES/libffi-3.0.13-18.el7_3.src.rpm
 5715f987bc0024ce5d72993cb101b8268350033b SOURCES/nodejs-10.21.0-5.fc32.src.rpm
diff --git a/.gitignore b/.gitignore
index 683a467..5ee8e68 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,7 @@
 SOURCES/Python-2.7.13.tar.xz
 SOURCES/cbindgen-vendor-0.14.3.tar.xz
-SOURCES/firefox-78.3.0esr.source.tar.xz
-SOURCES/firefox-langpacks-78.3.0esr-20200918.tar.xz
+SOURCES/firefox-78.4.0esr.source.tar.xz
+SOURCES/firefox-langpacks-78.4.0esr-20201016.tar.xz
 SOURCES/gtk3-private-3.22.26-1.el6.src.rpm
 SOURCES/libffi-3.0.13-18.el7_3.src.rpm
 SOURCES/nodejs-10.21.0-5.fc32.src.rpm
diff --git a/README.debrand b/README.debrand
deleted file mode 100644
index 01c46d2..0000000
--- a/README.debrand
+++ /dev/null
@@ -1,2 +0,0 @@
-Warning: This package was configured for automatic debranding, but the changes
-failed to apply.
diff --git a/SOURCES/fedora-shebang-build.patch b/SOURCES/fedora-shebang-build.patch
deleted file mode 100644
index 9ade86c..0000000
--- a/SOURCES/fedora-shebang-build.patch
+++ /dev/null
@@ -1,9 +0,0 @@
-diff -up firefox-73.0/build/unix/run-mozilla.sh.old firefox-73.0/build/unix/run-mozilla.sh
---- firefox-73.0/build/unix/run-mozilla.sh.old	2020-02-12 09:58:00.150895904 +0100
-+++ firefox-73.0/build/unix/run-mozilla.sh	2020-02-12 09:58:06.505860696 +0100
-@@ -1,4 +1,4 @@
--#!/bin/sh
-+#!/usr/bin/sh
- #
- # This Source Code Form is subject to the terms of the Mozilla Public
- # License, v. 2.0. If a copy of the MPL was not distributed with this
diff --git a/SOURCES/rhel6-mozilla.sh.patch b/SOURCES/rhel6-mozilla.sh.patch
new file mode 100644
index 0000000..9ade86c
--- /dev/null
+++ b/SOURCES/rhel6-mozilla.sh.patch
@@ -0,0 +1,9 @@
+diff -up firefox-73.0/build/unix/run-mozilla.sh.old firefox-73.0/build/unix/run-mozilla.sh
+--- firefox-73.0/build/unix/run-mozilla.sh.old	2020-02-12 09:58:00.150895904 +0100
++++ firefox-73.0/build/unix/run-mozilla.sh	2020-02-12 09:58:06.505860696 +0100
+@@ -1,4 +1,4 @@
+-#!/bin/sh
++#!/usr/bin/sh
+ #
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
diff --git a/SPECS/firefox.spec b/SPECS/firefox.spec
index 7e8a7aa..0a0189a 100644
--- a/SPECS/firefox.spec
+++ b/SPECS/firefox.spec
@@ -186,16 +186,14 @@
 %define gtk3_nvr 3.22.26-1
 %define gtk3_install_path %{mozappdir}/bundled
 
-%if 0%{?bundle_gtk3}
 # We could use %%include, but in %%files, %%post and other sections, but in these
 # sections it could lead to syntax errors about unclosed %%if. Work around it by
 # using the following macro
 %define include_file() %{expand:%(cat '%1')}
-%endif
 
 %global mozappdir     %{_libdir}/%{name}
 %global mozappdirdev  %{_libdir}/%{name}-devel-%{version}
-%global langpackdir   %{mozappdir}/distribution/extensions
+%global langpackdir   %{mozappdir}/langpacks
 %global tarballdir    %{name}-%{version}
 %global pre_version   esr
 #global pre_tag       alpha
@@ -212,7 +210,7 @@
 
 Summary:        Mozilla Firefox Web browser
 Name:           firefox
-Version:        78.3.0
+Version:        78.4.0
 Release:        1%{?dist}
 URL:            https://www.mozilla.org/firefox/
 License:        MPLv1.1 or GPLv2+ or LGPLv2+
@@ -225,7 +223,7 @@ ExclusiveArch:  i686 x86_64 ppc64 s390x
 
 Source0:        https://hg.mozilla.org/releases/mozilla-release/archive/firefox-%{version}%{?pre_version}.source.tar.xz
 %if %{build_langpacks}
-Source1:        firefox-langpacks-%{version}%{?pre_version}-20200918.tar.xz
+Source1:        firefox-langpacks-%{version}%{?pre_version}-20201016.tar.xz
 %endif
 Source2:        cbindgen-vendor-0.14.3.tar.xz
 Source10:       firefox-mozconfig
@@ -286,7 +284,6 @@ Patch232:        firefox-rhel6-hugepage.patch
 Patch233:        firefox-rhel6-nss-tls1.3.patch
 Patch234:        rhbz-1821418.patch
 Patch235:        firefox-pipewire-0-3.patch
-Patch236:        fedora-shebang-build.patch
 
 # Upstream patches
 Patch402:        mozilla-1196777.patch
@@ -320,6 +317,7 @@ Patch602:        rhel6-mach-fail.patch
 Patch603:        rhel6-zconst.patch
 Patch604:        rhel6-auxvh.patch
 Patch605:        rhel6-abiv2-mozbz1642174.patch
+Patch606:        rhel6-mozilla.sh.patch
 
 %if %{?system_nss}
 %if !0%{?bundle_nss}
@@ -637,7 +635,6 @@ echo "use_bundled_yasm      %{?use_bundled_yasm}"
   %endif
 %endif
 
-#%patch236 -p1 -b .fedora-shebang-build
 
 %if 0%{?rhel} == 6
 %patch232 -p1 -b .hugepage
@@ -677,6 +674,7 @@ echo "use_bundled_yasm      %{?use_bundled_yasm}"
 %patch603 -p1 -b .rhel6-zconst
 %patch604 -p1 -b .rhel6-auxvh
 %patch605 -p1 -b .rhel6-abiv2-mozbz1642174
+%patch606 -p1 -b .rhel6-mozilla-sh
 %endif
 
 # CentOS patches
@@ -921,7 +919,6 @@ function build_bundled_package() {
    export PKG_CONFIG_PATH=%{_buildrootdir}%{gtk3_install_path}/%{_lib}/pkgconfig
    export PATH="{_buildrootdir}%{gtk3_install_path}/bin:$PATH"
 
-   #%include_file %{SOURCE401}
    export PATH=%{_buildrootdir}/%{gtk3_install_path}/bin:$PATH
    echo $PKG_CONFIG_PATH
 
@@ -1185,6 +1182,18 @@ CPU_AVAILABLE=$(/usr/bin/getconf _NPROCESSORS_ONLN)
 # Pick the minimum from available CPUs or memory constrained number of jobs
 #MOZ_SMP_FLAGS=-j$([ "$CPU_AVAILABLE" -le "$MEM_CONSTRAINED_JOBS" ] && echo "$CPU_AVAILABLE" || echo "$MEM_CONSTRAINED_JOBS")
 
+cat /proc/meminfo
+# Free memory in kB
+
+MEM_AVAILABLE=$(grep MemAvailable /proc/meminfo | awk '{ print $2 }')
+
+# Usually the compiler processes can take 2 GB of memory at peaks
+TASK_SIZE=4000000
+MEM_CONSTRAINED_JOBS=$(( MEM_AVAILABLE / TASK_SIZE ))
+CPU_AVAILABLE=$(/usr/bin/getconf _NPROCESSORS_ONLN)
+# Pick the minimum from available CPUs or memory constrained number of jobs
+#MOZ_SMP_FLAGS=-j$([ "$CPU_AVAILABLE" -le "$MEM_CONSTRAINED_JOBS" ] && echo "$CPU_AVAILABLE" || echo "$MEM_CONSTRAINED_JOBS")
+
 %if 0%{?bundle_gtk3}
 # gtk3-private-setup-flags-env.inc
 %include_file %{SOURCE205}
@@ -1639,6 +1648,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 #---------------------------------------------------------------------
 
 %changelog
+* Fri Oct 16 2020 Jan Horak <jhorak@redhat.com> - 78.4.0-1
+- Update to 78.4.0 build2
+
 * Fri Sep 18 2020 Jan Horak <jhorak@redhat.com>
 - Update to 78.3.0 build1