diff --git a/.firefox.metadata b/.firefox.metadata
index 8d4b963..61c6272 100644
--- a/.firefox.metadata
+++ b/.firefox.metadata
@@ -1,2 +1,2 @@
-32502debd0a207bb918ccf169757607ecb32b5e0 SOURCES/firefox-31.4.0esr.source.tar.bz2
-d43b72d4814d8a7e6805de24d048136af1a085d0 SOURCES/firefox-langpacks-31.4.0esr-20150106.tar.bz2
+90fc8aeac75e7d4e3ec089d390faaec85e423d73 SOURCES/firefox-31.5.0esr.source.tar.bz2
+93e7f75114832a4ade1de663d4d148da92ca4956 SOURCES/firefox-langpacks-31.5.0esr-20150218.tar.bz2
diff --git a/.gitignore b/.gitignore
index 5f37328..a7725e9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
-SOURCES/firefox-31.4.0esr.source.tar.bz2
-SOURCES/firefox-langpacks-31.4.0esr-20150106.tar.bz2
+SOURCES/firefox-31.5.0esr.source.tar.bz2
+SOURCES/firefox-langpacks-31.5.0esr-20150218.tar.bz2
diff --git a/SOURCES/firefox-centos-default-prefs.js b/SOURCES/firefox-centos-default-prefs.js
deleted file mode 100644
index 2b5da25..0000000
--- a/SOURCES/firefox-centos-default-prefs.js
+++ /dev/null
@@ -1,28 +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");
-/* Workaround for rhbz#1134876 */
-pref("javascript.options.baselinejit",      false);
-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%");
diff --git a/SOURCES/mozilla-1097550-dict-fix.patch b/SOURCES/mozilla-1097550-dict-fix.patch
deleted file mode 100644
index f0001f1..0000000
--- a/SOURCES/mozilla-1097550-dict-fix.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-diff -up comm-esr31/mozilla/editor/composer/src/nsEditorSpellCheck.cpp.dict-fix comm-esr31/mozilla/editor/composer/src/nsEditorSpellCheck.cpp
---- comm-esr31/mozilla/editor/composer/src/nsEditorSpellCheck.cpp.dict-fix	2014-11-27 23:16:41.000000000 +0100
-+++ comm-esr31/mozilla/editor/composer/src/nsEditorSpellCheck.cpp	2014-12-11 13:06:02.679106492 +0100
-@@ -102,6 +102,23 @@ GetLoadContext(nsIEditor* aEditor)
- }
- 
- /**
-+ * Helper function for converting underscore to dash in dictionary name,
-+ * ie. en_CA to en-CA. This is required for some Linux distributions which
-+ * use underscore as separator in system-wide installed dictionaries.
-+ * We use it for nsStyleUtil::DashMatchCompare.
-+ */
-+static nsString
-+GetDictNameWithDash(const nsAString& aDictName)
-+{
-+  nsString dictNameWithDash(aDictName);
-+  int32_t underScore = dictNameWithDash.FindChar('_');
-+  if (underScore != -1) {
-+    dictNameWithDash.Replace(underScore, 1, '-');
-+  }
-+  return dictNameWithDash;
-+}
-+
-+/**
-  * Fetches the dictionary stored in content prefs and maintains state during the
-  * fetch, which is asynchronous.
-  */
-@@ -603,8 +620,8 @@ nsEditorSpellCheck::SetCurrentDictionary
-     } else {
-       langCode.Assign(aDictionary);
-     }
--
--    if (mPreferredLang.IsEmpty() || !nsStyleUtil::DashMatchCompare(mPreferredLang, langCode, comparator)) {
-+    if (mPreferredLang.IsEmpty() ||
-+        !nsStyleUtil::DashMatchCompare(GetDictNameWithDash(mPreferredLang), langCode, comparator)) {
-       // When user sets dictionary manually, we store this value associated
-       // with editor url.
-       StoreCurrentDictionary(mEditor, aDictionary);
-@@ -790,8 +807,8 @@ nsEditorSpellCheck::DictionaryFetched(Di
- 
-       // try dictionary.spellchecker preference if it starts with langCode (and
-       // if we haven't tried it already)
--      if (!preferedDict.IsEmpty() && !dictName.Equals(preferedDict) && 
--          nsStyleUtil::DashMatchCompare(preferedDict, langCode, comparator)) {
-+      if (!preferedDict.IsEmpty() && !dictName.Equals(preferedDict) &&
-+          nsStyleUtil::DashMatchCompare(GetDictNameWithDash(preferedDict), langCode, comparator)) {
-         rv = SetCurrentDictionary(preferedDict);
-       }
- 
-@@ -819,8 +836,7 @@ nsEditorSpellCheck::DictionaryFetched(Di
-             // We have already tried it
-             continue;
-           }
--
--          if (nsStyleUtil::DashMatchCompare(dictStr, langCode, comparator) &&
-+          if (nsStyleUtil::DashMatchCompare(GetDictNameWithDash(dictStr), langCode, comparator) &&
-               NS_SUCCEEDED(SetCurrentDictionary(dictStr))) {
-               break;
-           }
diff --git a/SOURCES/mozilla-1129859-dictfix2.patch b/SOURCES/mozilla-1129859-dictfix2.patch
new file mode 100644
index 0000000..c45ac19
--- /dev/null
+++ b/SOURCES/mozilla-1129859-dictfix2.patch
@@ -0,0 +1,419 @@
+# HG changeset patch
+# Parent 58ce6051edf56ce70c1a62e88bd879a6e56d9239
+# User Jan Horak <jhorak@redhat.com>
+# Bug 1129859 - Always use '-' as separator between lang-region in dictionary names, fixes problems with system dictionaries which has '_' as separator
+try: -b do -p all -u all -t none
+
+diff --git a/editor/composer/nsEditorSpellCheck.cpp b/editor/composer/nsEditorSpellCheck.cpp
+--- a/editor/composer/nsEditorSpellCheck.cpp
++++ b/editor/composer/nsEditorSpellCheck.cpp
+diff --git a/extensions/spellcheck/hunspell/src/mozHunspell.cpp b/extensions/spellcheck/hunspell/src/mozHunspell.cpp
+--- a/extensions/spellcheck/hunspell/src/mozHunspell.cpp
++++ b/extensions/spellcheck/hunspell/src/mozHunspell.cpp
+@@ -485,16 +485,19 @@ mozHunspell::LoadDictionariesFromDir(nsI
+     rv = file->Exists(&check);
+     if (NS_FAILED(rv) || !check)
+       continue;
+ 
+ #ifdef DEBUG_bsmedberg
+     printf("Adding dictionary: %s\n", NS_ConvertUTF16toUTF8(dict).get());
+ #endif
+ 
++    // Replace '_' separator with '-'
++    dict.ReplaceChar("_", '-');
++
+     mDictionaries.Put(dict, file);
+   }
+ 
+   return NS_OK;
+ }
+ 
+ nsresult mozHunspell::ConvertCharset(const char16_t* aStr, char ** aDst)
+ {
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/1463589_utf.aff b/extensions/spellcheck/hunspell/tests/unit/data/1463589-utf.aff
+rename from extensions/spellcheck/hunspell/tests/unit/data/1463589_utf.aff
+rename to extensions/spellcheck/hunspell/tests/unit/data/1463589-utf.aff
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/1463589_utf.dic b/extensions/spellcheck/hunspell/tests/unit/data/1463589-utf.dic
+rename from extensions/spellcheck/hunspell/tests/unit/data/1463589_utf.dic
+rename to extensions/spellcheck/hunspell/tests/unit/data/1463589-utf.dic
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/1463589_utf.sug b/extensions/spellcheck/hunspell/tests/unit/data/1463589-utf.sug
+rename from extensions/spellcheck/hunspell/tests/unit/data/1463589_utf.sug
+rename to extensions/spellcheck/hunspell/tests/unit/data/1463589-utf.sug
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/1463589_utf.test b/extensions/spellcheck/hunspell/tests/unit/data/1463589-utf.test
+rename from extensions/spellcheck/hunspell/tests/unit/data/1463589_utf.test
+rename to extensions/spellcheck/hunspell/tests/unit/data/1463589-utf.test
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/1463589_utf.wrong b/extensions/spellcheck/hunspell/tests/unit/data/1463589-utf.wrong
+rename from extensions/spellcheck/hunspell/tests/unit/data/1463589_utf.wrong
+rename to extensions/spellcheck/hunspell/tests/unit/data/1463589-utf.wrong
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/allcaps_utf.aff b/extensions/spellcheck/hunspell/tests/unit/data/allcaps-utf.aff
+rename from extensions/spellcheck/hunspell/tests/unit/data/allcaps_utf.aff
+rename to extensions/spellcheck/hunspell/tests/unit/data/allcaps-utf.aff
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/allcaps_utf.dic b/extensions/spellcheck/hunspell/tests/unit/data/allcaps-utf.dic
+rename from extensions/spellcheck/hunspell/tests/unit/data/allcaps_utf.dic
+rename to extensions/spellcheck/hunspell/tests/unit/data/allcaps-utf.dic
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/allcaps_utf.good b/extensions/spellcheck/hunspell/tests/unit/data/allcaps-utf.good
+rename from extensions/spellcheck/hunspell/tests/unit/data/allcaps_utf.good
+rename to extensions/spellcheck/hunspell/tests/unit/data/allcaps-utf.good
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/allcaps_utf.sug b/extensions/spellcheck/hunspell/tests/unit/data/allcaps-utf.sug
+rename from extensions/spellcheck/hunspell/tests/unit/data/allcaps_utf.sug
+rename to extensions/spellcheck/hunspell/tests/unit/data/allcaps-utf.sug
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/allcaps_utf.test b/extensions/spellcheck/hunspell/tests/unit/data/allcaps-utf.test
+rename from extensions/spellcheck/hunspell/tests/unit/data/allcaps_utf.test
+rename to extensions/spellcheck/hunspell/tests/unit/data/allcaps-utf.test
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/allcaps_utf.wrong b/extensions/spellcheck/hunspell/tests/unit/data/allcaps-utf.wrong
+rename from extensions/spellcheck/hunspell/tests/unit/data/allcaps_utf.wrong
+rename to extensions/spellcheck/hunspell/tests/unit/data/allcaps-utf.wrong
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/base_utf.aff b/extensions/spellcheck/hunspell/tests/unit/data/base-utf.aff
+rename from extensions/spellcheck/hunspell/tests/unit/data/base_utf.aff
+rename to extensions/spellcheck/hunspell/tests/unit/data/base-utf.aff
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/base_utf.dic b/extensions/spellcheck/hunspell/tests/unit/data/base-utf.dic
+rename from extensions/spellcheck/hunspell/tests/unit/data/base_utf.dic
+rename to extensions/spellcheck/hunspell/tests/unit/data/base-utf.dic
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/base_utf.good b/extensions/spellcheck/hunspell/tests/unit/data/base-utf.good
+rename from extensions/spellcheck/hunspell/tests/unit/data/base_utf.good
+rename to extensions/spellcheck/hunspell/tests/unit/data/base-utf.good
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/base_utf.sug b/extensions/spellcheck/hunspell/tests/unit/data/base-utf.sug
+rename from extensions/spellcheck/hunspell/tests/unit/data/base_utf.sug
+rename to extensions/spellcheck/hunspell/tests/unit/data/base-utf.sug
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/base_utf.test b/extensions/spellcheck/hunspell/tests/unit/data/base-utf.test
+rename from extensions/spellcheck/hunspell/tests/unit/data/base_utf.test
+rename to extensions/spellcheck/hunspell/tests/unit/data/base-utf.test
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/base_utf.wrong b/extensions/spellcheck/hunspell/tests/unit/data/base-utf.wrong
+rename from extensions/spellcheck/hunspell/tests/unit/data/base_utf.wrong
+rename to extensions/spellcheck/hunspell/tests/unit/data/base-utf.wrong
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/colons_in_words.aff b/extensions/spellcheck/hunspell/tests/unit/data/colons-in-words.aff
+rename from extensions/spellcheck/hunspell/tests/unit/data/colons_in_words.aff
+rename to extensions/spellcheck/hunspell/tests/unit/data/colons-in-words.aff
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/colons_in_words.dic b/extensions/spellcheck/hunspell/tests/unit/data/colons-in-words.dic
+rename from extensions/spellcheck/hunspell/tests/unit/data/colons_in_words.dic
+rename to extensions/spellcheck/hunspell/tests/unit/data/colons-in-words.dic
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/colons_in_words.test b/extensions/spellcheck/hunspell/tests/unit/data/colons-in-words.test
+rename from extensions/spellcheck/hunspell/tests/unit/data/colons_in_words.test
+rename to extensions/spellcheck/hunspell/tests/unit/data/colons-in-words.test
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/condition_utf.aff b/extensions/spellcheck/hunspell/tests/unit/data/condition-utf.aff
+rename from extensions/spellcheck/hunspell/tests/unit/data/condition_utf.aff
+rename to extensions/spellcheck/hunspell/tests/unit/data/condition-utf.aff
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/condition_utf.dic b/extensions/spellcheck/hunspell/tests/unit/data/condition-utf.dic
+rename from extensions/spellcheck/hunspell/tests/unit/data/condition_utf.dic
+rename to extensions/spellcheck/hunspell/tests/unit/data/condition-utf.dic
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/condition_utf.good b/extensions/spellcheck/hunspell/tests/unit/data/condition-utf.good
+rename from extensions/spellcheck/hunspell/tests/unit/data/condition_utf.good
+rename to extensions/spellcheck/hunspell/tests/unit/data/condition-utf.good
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/condition_utf.test b/extensions/spellcheck/hunspell/tests/unit/data/condition-utf.test
+rename from extensions/spellcheck/hunspell/tests/unit/data/condition_utf.test
+rename to extensions/spellcheck/hunspell/tests/unit/data/condition-utf.test
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/condition_utf.wrong b/extensions/spellcheck/hunspell/tests/unit/data/condition-utf.wrong
+rename from extensions/spellcheck/hunspell/tests/unit/data/condition_utf.wrong
+rename to extensions/spellcheck/hunspell/tests/unit/data/condition-utf.wrong
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/digits_in_words.aff b/extensions/spellcheck/hunspell/tests/unit/data/digits-in-words.aff
+rename from extensions/spellcheck/hunspell/tests/unit/data/digits_in_words.aff
+rename to extensions/spellcheck/hunspell/tests/unit/data/digits-in-words.aff
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/digits_in_words.dic b/extensions/spellcheck/hunspell/tests/unit/data/digits-in-words.dic
+rename from extensions/spellcheck/hunspell/tests/unit/data/digits_in_words.dic
+rename to extensions/spellcheck/hunspell/tests/unit/data/digits-in-words.dic
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/digits_in_words.test b/extensions/spellcheck/hunspell/tests/unit/data/digits-in-words.test
+rename from extensions/spellcheck/hunspell/tests/unit/data/digits_in_words.test
+rename to extensions/spellcheck/hunspell/tests/unit/data/digits-in-words.test
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/digits_in_words.wrong b/extensions/spellcheck/hunspell/tests/unit/data/digits-in-words.wrong
+rename from extensions/spellcheck/hunspell/tests/unit/data/digits_in_words.wrong
+rename to extensions/spellcheck/hunspell/tests/unit/data/digits-in-words.wrong
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/ngram_utf_fix.aff b/extensions/spellcheck/hunspell/tests/unit/data/ngram-utf-fix.aff
+rename from extensions/spellcheck/hunspell/tests/unit/data/ngram_utf_fix.aff
+rename to extensions/spellcheck/hunspell/tests/unit/data/ngram-utf-fix.aff
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/ngram_utf_fix.dic b/extensions/spellcheck/hunspell/tests/unit/data/ngram-utf-fix.dic
+rename from extensions/spellcheck/hunspell/tests/unit/data/ngram_utf_fix.dic
+rename to extensions/spellcheck/hunspell/tests/unit/data/ngram-utf-fix.dic
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/ngram_utf_fix.good b/extensions/spellcheck/hunspell/tests/unit/data/ngram-utf-fix.good
+rename from extensions/spellcheck/hunspell/tests/unit/data/ngram_utf_fix.good
+rename to extensions/spellcheck/hunspell/tests/unit/data/ngram-utf-fix.good
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/ngram_utf_fix.sug b/extensions/spellcheck/hunspell/tests/unit/data/ngram-utf-fix.sug
+rename from extensions/spellcheck/hunspell/tests/unit/data/ngram_utf_fix.sug
+rename to extensions/spellcheck/hunspell/tests/unit/data/ngram-utf-fix.sug
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/ngram_utf_fix.test b/extensions/spellcheck/hunspell/tests/unit/data/ngram-utf-fix.test
+rename from extensions/spellcheck/hunspell/tests/unit/data/ngram_utf_fix.test
+rename to extensions/spellcheck/hunspell/tests/unit/data/ngram-utf-fix.test
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/ngram_utf_fix.wrong b/extensions/spellcheck/hunspell/tests/unit/data/ngram-utf-fix.wrong
+rename from extensions/spellcheck/hunspell/tests/unit/data/ngram_utf_fix.wrong
+rename to extensions/spellcheck/hunspell/tests/unit/data/ngram-utf-fix.wrong
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat.aff b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat.aff
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat.aff
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat.aff
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat.dic b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat.dic
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat.dic
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat.dic
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat.good b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat.good
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat.good
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat.good
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat.test b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat.test
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat.test
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat.test
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat.wrong b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat.wrong
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat.wrong
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat.wrong
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat2.aff b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat2.aff
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat2.aff
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat2.aff
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat2.dic b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat2.dic
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat2.dic
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat2.dic
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat2.good b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat2.good
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat2.good
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat2.good
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat2.test b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat2.test
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat2.test
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat2.test
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat2.wrong b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat2.wrong
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_cpdpat2.wrong
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-cpdpat2.wrong
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword1.aff b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword1.aff
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword1.aff
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword1.aff
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword1.dic b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword1.dic
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword1.dic
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword1.dic
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword1.good b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword1.good
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword1.good
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword1.good
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword1.sug b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword1.sug
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword1.sug
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword1.sug
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword1.test b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword1.test
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword1.test
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword1.test
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword1.wrong b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword1.wrong
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword1.wrong
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword1.wrong
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword2.aff b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword2.aff
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword2.aff
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword2.aff
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword2.dic b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword2.dic
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword2.dic
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword2.dic
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword2.good b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword2.good
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword2.good
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword2.good
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword2.sug b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword2.sug
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword2.sug
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword2.sug
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword2.test b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword2.test
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword2.test
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword2.test
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword2.wrong b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword2.wrong
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_forbiddenword2.wrong
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-forbiddenword2.wrong
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_keepcase.aff b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-keepcase.aff
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_keepcase.aff
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-keepcase.aff
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_keepcase.dic b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-keepcase.dic
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_keepcase.dic
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-keepcase.dic
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_keepcase.good b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-keepcase.good
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_keepcase.good
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-keepcase.good
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_keepcase.sug b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-keepcase.sug
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_keepcase.sug
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-keepcase.sug
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_keepcase.test b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-keepcase.test
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_keepcase.test
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-keepcase.test
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/opentaal_keepcase.wrong b/extensions/spellcheck/hunspell/tests/unit/data/opentaal-keepcase.wrong
+rename from extensions/spellcheck/hunspell/tests/unit/data/opentaal_keepcase.wrong
+rename to extensions/spellcheck/hunspell/tests/unit/data/opentaal-keepcase.wrong
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/utf8_bom.aff b/extensions/spellcheck/hunspell/tests/unit/data/utf8-bom.aff
+rename from extensions/spellcheck/hunspell/tests/unit/data/utf8_bom.aff
+rename to extensions/spellcheck/hunspell/tests/unit/data/utf8-bom.aff
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/utf8_bom.dic b/extensions/spellcheck/hunspell/tests/unit/data/utf8-bom.dic
+rename from extensions/spellcheck/hunspell/tests/unit/data/utf8_bom.dic
+rename to extensions/spellcheck/hunspell/tests/unit/data/utf8-bom.dic
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/utf8_bom.good b/extensions/spellcheck/hunspell/tests/unit/data/utf8-bom.good
+rename from extensions/spellcheck/hunspell/tests/unit/data/utf8_bom.good
+rename to extensions/spellcheck/hunspell/tests/unit/data/utf8-bom.good
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/utf8_bom.test b/extensions/spellcheck/hunspell/tests/unit/data/utf8-bom.test
+rename from extensions/spellcheck/hunspell/tests/unit/data/utf8_bom.test
+rename to extensions/spellcheck/hunspell/tests/unit/data/utf8-bom.test
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/utf8_bom2.aff b/extensions/spellcheck/hunspell/tests/unit/data/utf8-bom2.aff
+rename from extensions/spellcheck/hunspell/tests/unit/data/utf8_bom2.aff
+rename to extensions/spellcheck/hunspell/tests/unit/data/utf8-bom2.aff
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/utf8_bom2.dic b/extensions/spellcheck/hunspell/tests/unit/data/utf8-bom2.dic
+rename from extensions/spellcheck/hunspell/tests/unit/data/utf8_bom2.dic
+rename to extensions/spellcheck/hunspell/tests/unit/data/utf8-bom2.dic
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/utf8_bom2.good b/extensions/spellcheck/hunspell/tests/unit/data/utf8-bom2.good
+rename from extensions/spellcheck/hunspell/tests/unit/data/utf8_bom2.good
+rename to extensions/spellcheck/hunspell/tests/unit/data/utf8-bom2.good
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/utf8_bom2.test b/extensions/spellcheck/hunspell/tests/unit/data/utf8-bom2.test
+rename from extensions/spellcheck/hunspell/tests/unit/data/utf8_bom2.test
+rename to extensions/spellcheck/hunspell/tests/unit/data/utf8-bom2.test
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/utf8_nonbmp.aff b/extensions/spellcheck/hunspell/tests/unit/data/utf8-nonbmp.aff
+rename from extensions/spellcheck/hunspell/tests/unit/data/utf8_nonbmp.aff
+rename to extensions/spellcheck/hunspell/tests/unit/data/utf8-nonbmp.aff
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/utf8_nonbmp.dic b/extensions/spellcheck/hunspell/tests/unit/data/utf8-nonbmp.dic
+rename from extensions/spellcheck/hunspell/tests/unit/data/utf8_nonbmp.dic
+rename to extensions/spellcheck/hunspell/tests/unit/data/utf8-nonbmp.dic
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/utf8_nonbmp.good b/extensions/spellcheck/hunspell/tests/unit/data/utf8-nonbmp.good
+rename from extensions/spellcheck/hunspell/tests/unit/data/utf8_nonbmp.good
+rename to extensions/spellcheck/hunspell/tests/unit/data/utf8-nonbmp.good
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/utf8_nonbmp.sug b/extensions/spellcheck/hunspell/tests/unit/data/utf8-nonbmp.sug
+rename from extensions/spellcheck/hunspell/tests/unit/data/utf8_nonbmp.sug
+rename to extensions/spellcheck/hunspell/tests/unit/data/utf8-nonbmp.sug
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/utf8_nonbmp.test b/extensions/spellcheck/hunspell/tests/unit/data/utf8-nonbmp.test
+rename from extensions/spellcheck/hunspell/tests/unit/data/utf8_nonbmp.test
+rename to extensions/spellcheck/hunspell/tests/unit/data/utf8-nonbmp.test
+diff --git a/extensions/spellcheck/hunspell/tests/unit/data/utf8_nonbmp.wrong b/extensions/spellcheck/hunspell/tests/unit/data/utf8-nonbmp.wrong
+rename from extensions/spellcheck/hunspell/tests/unit/data/utf8_nonbmp.wrong
+rename to extensions/spellcheck/hunspell/tests/unit/data/utf8-nonbmp.wrong
+diff --git a/extensions/spellcheck/hunspell/tests/unit/test_hunspell.js b/extensions/spellcheck/hunspell/tests/unit/test_hunspell.js
+--- a/extensions/spellcheck/hunspell/tests/unit/test_hunspell.js
++++ b/extensions/spellcheck/hunspell/tests/unit/test_hunspell.js
+@@ -3,21 +3,21 @@
+  */
+ 
+ const Cc = Components.classes;
+ const Ci = Components.interfaces;
+ 
+ const tests = [
+     ["affixes", "iso-8859-1"],
+     ["condition", "iso-8859-1"],
+-    ["condition_utf", "UTF-8"],
++    ["condition-utf", "UTF-8"],
+     ["base", "iso-8859-1"],
+-    ["base_utf", "UTF-8"],
++    ["base-utf", "UTF-8"],
+     ["allcaps", "iso-8859-1"],
+-    ["allcaps_utf", "UTF-8"],
++    ["allcaps-utf", "UTF-8"],
+     ["allcaps2", "iso-8859-1"],
+     ["allcaps3", "iso-8859-1"],
+     ["keepcase", "iso-8859-1"],
+     ["i58202", "iso-8859-1"],
+     ["map", "iso-8859-1"],
+     ["rep", "iso-8859-1"],
+     ["sug", "iso-8859-1"],
+     ["sugutf", "UTF-8"],
+@@ -43,19 +43,19 @@ const tests = [
+     ["fogemorpheme", "iso-8859-1"],
+     ["onlyincompound", "iso-8859-1"],
+     ["complexprefixes", "iso-8859-1"],
+     ["complexprefixes2", "iso-8859-1"],
+     ["complexprefixesutf", "UTF-8"],
+     ["conditionalprefix", "iso-8859-1"],
+     ["zeroaffix", "iso-8859-1"],
+     ["utf8", "UTF-8"],
+-    ["utf8_bom", "UTF-8", {1: "todo"}],
+-    ["utf8_bom2", "UTF-8", {1: "todo"}],
+-    ["utf8_nonbmp", "UTF-8", {1: "todo", 2: "todo", 3: "todo", 4: "todo"}],
++    ["utf8-bom", "UTF-8", {1: "todo"}],
++    ["utf8-bom2", "UTF-8", {1: "todo"}],
++    ["utf8-nonbmp", "UTF-8", {1: "todo", 2: "todo", 3: "todo", 4: "todo"}],
+     ["compoundflag", "iso-8859-1"],
+     ["compoundrule", "iso-8859-1"],
+     ["compoundrule2", "iso-8859-1"],
+     ["compoundrule3", "iso-8859-1"],
+     ["compoundrule4", "iso-8859-1"],
+     ["compoundrule5", "UTF-8"],
+     ["compoundrule6", "iso-8859-1"],
+     ["compoundrule7", "iso-8859-1"],
+@@ -86,43 +86,43 @@ const tests = [
+     ["reputf", "UTF-8"],
+     ["ignore", "iso-8859-1"],
+     ["ignoreutf", "UTF-8",
+      {1: "todo", 2: "todo", 3: "todo", 4: "todo", 5: "todo", 6: "todo",
+       7: "todo", 8: "todo"}],
+     ["1592880", "iso-8859-1"],
+     ["1695964", "iso-8859-1"],
+     ["1463589", "iso-8859-1"],
+-    ["1463589_utf", "UTF-8"],
++    ["1463589-utf", "UTF-8"],
+     ["IJ", "iso-8859-1"],
+     ["i68568", "iso-8859-1"],
+     ["i68568utf", "UTF-8"],
+     ["1706659", "iso-8859-1"],
+-    ["digits_in_words", "iso-8859-1"],
+-//    ["colons_in_words", "iso-8859-1"], Suggestion test only
+-    ["ngram_utf_fix", "UTF-8"],
++    ["digits-in-words", "iso-8859-1"],
++//    ["colons-in-words", "iso-8859-1"], Suggestion test only
++    ["ngram-utf-fix", "UTF-8"],
+     ["morph", "us-ascii",
+      {11: "todo", 12: "todo", 13: "todo", 14: "todo", 15: "todo", 16: "todo",
+       17: "todo", 18: "todo", 19: "todo", 20: "todo", 21: "todo", 22: "todo",
+       23: "todo", 24: "todo", 25: "todo", 26: "todo", 27: "todo"}],
+     ["1975530", "UTF-8"],
+     ["fullstrip", "iso-8859-1"],
+     ["iconv", "UTF-8"],
+     ["oconv", "UTF-8"],
+     ["encoding", "iso-8859-1", {1: "todo", 3: "todo"}],
+     ["korean", "UTF-8"],
+-    ["opentaal_forbiddenword1", "UTF-8"],
+-    ["opentaal_forbiddenword2", "UTF-8"],
+-    ["opentaal_keepcase", "UTF-8"],
++    ["opentaal-forbiddenword1", "UTF-8"],
++    ["opentaal-forbiddenword2", "UTF-8"],
++    ["opentaal-keepcase", "UTF-8"],
+     ["arabic", "UTF-8"],
+     ["2970240", "iso-8859-1"],
+     ["2970242", "iso-8859-1"],
+     ["breakoff", "iso-8859-1"],
+-    ["opentaal_cpdpat", "iso-8859-1"],
+-    ["opentaal_cpdpat2", "iso-8859-1"],
++    ["opentaal-cpdpat", "iso-8859-1"],
++    ["opentaal-cpdpat2", "iso-8859-1"],
+     ["2999225", "iso-8859-1"],
+     ["onlyincompound2", "iso-8859-1"],
+     ["forceucase", "iso-8859-1"],
+     ["warn", "iso-8859-1"]
+ ];
+ 
+ function do_get_file_by_line(file, charset) {
+   dump("getting file by line for file " + file.path + "\n");
+diff --git a/extensions/spellcheck/tests/chrome/test_add_remove_dictionaries.xul b/extensions/spellcheck/tests/chrome/test_add_remove_dictionaries.xul
+--- a/extensions/spellcheck/tests/chrome/test_add_remove_dictionaries.xul
++++ b/extensions/spellcheck/tests/chrome/test_add_remove_dictionaries.xul
+@@ -63,26 +63,26 @@ function RunTest() {
+   ok(map.exists());
+   hunspell.addDirectory(map);
+ 
+   Components.utils.import("resource://gre/modules/AsyncSpellCheckTestHelper.jsm");
+   onSpellCheck(textbox, function () {
+ 
+     // test that base and map dictionaries are available
+     var dicts = getDictionaryList(editor);
+-    isnot(dicts.indexOf("base_utf"), -1, "base is available");
++    isnot(dicts.indexOf("base-utf"), -1, "base is available");
+     isnot(dicts.indexOf("maputf"), -1, "map is available");
+ 
+     // select base dictionary
+-    setCurrentDictionary(editor, "base_utf");
++    setCurrentDictionary(editor, "base-utf");
+ 
+     onSpellCheck(textbox, function () {
+       // test that base dictionary is in use
+       is(getMisspelledWords(editor), "Frühstück" + "qwertyu", "base misspellings");
+-      is(getCurrentDictionary(editor), "base_utf", "current dictionary");
++      is(getCurrentDictionary(editor), "base-utf", "current dictionary");
+ 
+       // select map dictionary
+       setCurrentDictionary(editor, "maputf");
+ 
+       onSpellCheck(textbox, function () {
+         // test that map dictionary is in use
+         is(getMisspelledWords(editor), "created" + "imply" + "tomorrow" + "qwertyu", "map misspellings");
+         is(getCurrentDictionary(editor), "maputf", "current dictionary");
+@@ -92,17 +92,17 @@ function RunTest() {
+ 
+         onSpellCheck(textbox, function () {
+           // test that map dictionary is not in use
+           isnot(getMisspelledWords(editor), "created" + "imply" + "tomorrow" + "qwertyu", "map misspellings");
+           isnot(getCurrentDictionary(editor), "maputf", "current dictionary");
+ 
+           // test that base dictionary is available and map dictionary is unavailable
+           var dicts = getDictionaryList(editor);
+-          isnot(dicts.indexOf("base_utf"), -1, "base is available");
++          isnot(dicts.indexOf("base-utf"), -1, "base is available");
+           is(dicts.indexOf("maputf"), -1, "map is unavailable");
+ 
+           // uninstall base dictionary
+           hunspell.removeDirectory(base);
+ 
+           onSpellCheck(textbox, function () {
+             SimpleTest.finish();
+           });
diff --git a/SPECS/firefox.spec b/SPECS/firefox.spec
index 02ded21..538e388 100644
--- a/SPECS/firefox.spec
+++ b/SPECS/firefox.spec
@@ -55,19 +55,19 @@
 
 Summary:        Mozilla Firefox Web browser
 Name:           firefox
-Version:        31.4.0
-Release:        1%{?prever}%{?dist}
+Version:        31.5.0
+Release:        2%{?prever}%{?dist}
 URL:            http://www.mozilla.org/projects/firefox/
 License:        MPLv1.1 or GPLv2+ or LGPLv2+
 Group:          Applications/Internet
 # From ftp://ftp.mozilla.org/pub/firefox/releases/%{version}%{?pretag}/source
 Source0:        firefox-%{version}%{?prever}%{?ext_version}.source.tar.bz2
 %if %{build_langpacks}
-Source1:        firefox-langpacks-%{version}%{?ext_version}-20150106.tar.bz2
+Source1:        firefox-langpacks-%{version}%{?ext_version}-20150218.tar.bz2
 %endif
 Source10:       firefox-mozconfig
 Source11:       firefox-mozconfig-branded
-Source12:       firefox-centos-default-prefs.js
+Source12:       firefox-redhat-default-prefs.js
 Source20:       firefox.desktop
 Source21:       firefox.sh.in
 Source23:       firefox.1
@@ -91,7 +91,7 @@ Patch18:        rhbz-1014858.patch
 
 # Upstream patches
 Patch200:       firefox-duckduckgo.patch
-Patch201:       mozilla-1097550-dict-fix.patch
+Patch201:       mozilla-1129859-dictfix2.patch
 
 %if %{official_branding}
 # Required by Mozilla Corporation
@@ -209,7 +209,7 @@ cd %{tarballdir}
 
 # For branding specific patches.
 %patch200 -p1 -b .duckduckgo
-%patch201 -p2 -b .dict-fix
+%patch201 -p1 -b .dict-fix
 
 # Upstream patches
 
@@ -316,6 +316,10 @@ MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS -fpermissive" | %{__sed} -e 's/-Wall//')
 %if %{?debug_build}
 MOZ_OPT_FLAGS=$(echo "$MOZ_OPT_FLAGS" | %{__sed} -e 's/-O2//')
 %endif
+# -Werror=format-security causes build failures when -Wno-format is explicitly given
+# for some sources
+MOZ_OPT_FLAGS="$MOZ_OPT_FLAGS -Wformat-security -Wformat -Werror=format-security"
+
 %ifarch s390
 MOZ_OPT_FLAGS=$(echo "$RPM_OPT_FLAGS" | %{__sed} -e 's/-g/-g1/')
 %endif
@@ -523,8 +527,8 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 #---------------------------------------------------------------------
 
 %changelog
-* Tue Jan 13 2015 CentOS Sources <bugs@centos.org> - 31.4.0-1.el7.centos
-- CentOS default prefs
+* Wed Feb 18 2015 Martin Stransky <stransky@redhat.com> - 31.5.0-2
+- Update to 31.5.0 ESR Build 2
 
 * Tue Jan  6 2015 Jan Horak <jhorak@redhat.com> - 31.4.0-1
 - Update to 31.4.0 ESR