diff --git a/software/seleniumserver/buildout.hash.cfg b/software/seleniumserver/buildout.hash.cfg
index c285de8241137b6d58ecdc3dc11c80445195cada..9494354630d440a4c9f3ab29c3a3eb34e1d74397 100644
--- a/software/seleniumserver/buildout.hash.cfg
+++ b/software/seleniumserver/buildout.hash.cfg
@@ -19,4 +19,4 @@ md5sum = c4ac5de141ae6a64848309af03e51d88
 
 [template-selenium]
 filename = instance-selenium.cfg.in
-md5sum = 597991d7354970550d25324e3836adda
+md5sum = 2897b53c99adb80a61ebc8cbb6adb918
diff --git a/software/seleniumserver/instance-selenium.cfg.in b/software/seleniumserver/instance-selenium.cfg.in
index 530b8aa6c609e75bd67fd09e21f71805d8ea8e1c..bbfc4820dbf96b0c939121d703ca2aa06ea2c696 100644
--- a/software/seleniumserver/instance-selenium.cfg.in
+++ b/software/seleniumserver/instance-selenium.cfg.in
@@ -114,11 +114,17 @@ capabilities = browserName=firefox,maxInstances=3,marionette=true,platform=LINUX
 java-args = -Dwebdriver.gecko.driver=${geckodriver-0.24.0:location}
 port = 7779
 
+[selenium-server-node-instance-firefox-78]
+<= selenium-server-node-instance
+capabilities = browserName=firefox,maxInstances=3,marionette=true,platform=LINUX,version=${firefox-78:version},firefox_binary=${firefox-wrapper-78:location}
+java-args = -Dwebdriver.gecko.driver=${geckodriver-0.24.0:location}
+port = 7780
+
 [selenium-server-node-instance-chromium-69]
 <= selenium-server-node-instance
 capabilities = browserName=chrome,maxInstances=3,platform=LINUX,version=${chromium-69:version},chrome_binary=${chromium-wrapper-69:location}
 java-args = -Dwebdriver.chrome.driver=${chromedriver-wrapper-2.41:location}
-port = 7780
+port = 7781
 
 
 [selenium-server-admin-password]
@@ -263,6 +269,7 @@ instance-promises =
   $${selenium-server-node-firefox-52-listen-promise:name}
   $${selenium-server-node-firefox-60-listen-promise:name}
   $${selenium-server-node-firefox-68-listen-promise:name}
+  $${selenium-server-node-firefox-78-listen-promise:name}
   $${selenium-server-node-instance-chromium-69-listen-promise:name}
 
 
@@ -301,6 +308,11 @@ config-port = $${selenium-server-node-instance-firefox-60:port}
 config-hostname = $${selenium-server-node-instance-firefox-68:hostname}
 config-port = $${selenium-server-node-instance-firefox-68:port}
 
+[selenium-server-node-firefox-78-listen-promise]
+<= check-port-listening-promise
+config-hostname = $${selenium-server-node-instance-firefox-78:hostname}
+config-port = $${selenium-server-node-instance-firefox-78:port}
+
 [selenium-server-node-instance-chromium-69-listen-promise]
 <= check-port-listening-promise
 config-hostname = $${selenium-server-node-instance-chromium-69:hostname}
diff --git a/software/seleniumserver/software.cfg b/software/seleniumserver/software.cfg
index b5227546b06e11c2e4903823548e1757b0408927..650d1bcfd10cf581f9f1d95e62679c85cf0a97aa 100644
--- a/software/seleniumserver/software.cfg
+++ b/software/seleniumserver/software.cfg
@@ -73,6 +73,10 @@ post-install =
 post-install =
   ${symlink-extra-fonts-to-firefox-fonts-dir:install}
 
+[firefox-78]
+post-install =
+  ${symlink-extra-fonts-to-firefox-fonts-dir:install}
+
 [versions]
 plone.recipe.command = 1.1
 slapos.recipe.template = 4.4
diff --git a/software/seleniumserver/test/data/test.TestFirefox78.test_screenshot.png b/software/seleniumserver/test/data/test.TestFirefox78.test_screenshot.png
new file mode 100644
index 0000000000000000000000000000000000000000..255e304a821b127617bbec9cf35f37260544440d
Binary files /dev/null and b/software/seleniumserver/test/data/test.TestFirefox78.test_screenshot.png differ
diff --git a/software/seleniumserver/test/test.py b/software/seleniumserver/test/test.py
index 0b377d85361f9486578f2f29bd7c62325e74b274..973db537b6d2fa470288e2aa63475883ecbed210 100644
--- a/software/seleniumserver/test/test.py
+++ b/software/seleniumserver/test/test.py
@@ -429,6 +429,14 @@ class TestFirefox68(
   desired_capabilities = dict(DesiredCapabilities.FIREFOX, version='68.0.2esr')
   user_agent = 'Gecko/20100101 Firefox/68.0'
 
+class TestFirefox78(
+    BrowserCompatibilityMixin,
+    SeleniumServerTestCase,
+    ImageComparisonTestCase,
+):
+  desired_capabilities = dict(DesiredCapabilities.FIREFOX, version='78.1.0esr')
+  user_agent = 'Gecko/20100101 Firefox/78.0'
+
 
 class TestChrome69(
     BrowserCompatibilityMixin,