diff --git a/community/seamonkey/PKGBUILD b/community/seamonkey/PKGBUILD
index b01974e87..a855930e2 100644
--- a/community/seamonkey/PKGBUILD
+++ b/community/seamonkey/PKGBUILD
@@ -6,7 +6,7 @@
 #  - mozconfig additions used in xulrunner, just in case
 
 pkgname=seamonkey
-pkgver=2.26.1
+pkgver=2.29
 pkgrel=1
 pkgdesc="SeaMonkey internet suite"
 arch=('i686' 'x86_64')
@@ -22,17 +22,22 @@ url="http://www.seamonkey-project.org/"
 source=(ftp://ftp.mozilla.org/pub/mozilla.org/$pkgname/releases/$pkgver/source/$pkgname-$pkgver.source.tar.bz2
         mozconfig
         seamonkey-2.0-lang.patch
-        arm-hardfp.patch::https://hg.mozilla.org/mozilla-central/raw-rev/280aa953c868)
-md5sums=('4bfa46b370b4d211eef56b90277a9517'
+        arm-hardfp.patch::https://hg.mozilla.org/mozilla-central/raw-rev/280aa953c868
+        rhbz-966424.patch)
+md5sums=('ffd77471765e1a38c2a00ab3453a96a7'
          '806cb42b072a8e749685ae6eafefb4ec'
          '25b6fe16ac24cd5c852213e5c1adb272'
-         'aaabaf6df9a493570bb8f0d8fac54ace')
+         'aaabaf6df9a493570bb8f0d8fac54ace'
+         '8c1578232b7a60fa1caa9a0b322d1e2b')
 
 prepare() {
   cd comm-release
   cp ../mozconfig .mozconfig
   patch -Np1 -i ../seamonkey-2.0-lang.patch
 
+  # https://bugs.archlinux.org/task/41689
+  patch -Np1 -d mozilla -i ../../rhbz-966424.patch
+
   # Don't exit with error when some libs are missing which we have in
   # system.
   sed -i '/^MOZ_PKG_FATAL_WARNINGS/s@= 1@= 0@' suite/installer/Makefile.in
diff --git a/community/seamonkey/rhbz-966424.patch b/community/seamonkey/rhbz-966424.patch
new file mode 100644
index 000000000..c4c332e9e
--- /dev/null
+++ b/community/seamonkey/rhbz-966424.patch
@@ -0,0 +1,23 @@
+--- a/toolkit/modules/CertUtils.jsm
++++ b/toolkit/modules/CertUtils.jsm
+@@ -170,17 +170,19 @@ this.checkCert =
+   issuerCert = issuerCert.QueryInterface(Ci.nsIX509Cert3);
+   var tokenNames = issuerCert.getAllTokenNames({});
+ 
+   if (!tokenNames || !tokenNames.some(isBuiltinToken))
+     throw new Ce(certNotBuiltInErr, Cr.NS_ERROR_ABORT);
+ }
+ 
+ function isBuiltinToken(tokenName) {
+-  return tokenName == "Builtin Object Token";
++  return tokenName == "Builtin Object Token" ||
++         tokenName == "Default Trust" ||
++         tokenName == "System Trust";
+ }
+ 
+ /**
+  * This class implements nsIBadCertListener.  Its job is to prevent "bad cert"
+  * security dialogs from being shown to the user.  It is better to simply fail
+  * if the certificate is bad. See bug 304286.
+  *
+  * @param  aAllowNonBuiltInCerts (optional)