diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index 043174f3b0259b0ad7b664157bade949bd9a8baf..70fc6d390d3fcf460d4b4f4223e035e0274cd28d 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -3154,7 +3154,8 @@ minusWallOpts
         Opt_WarnMissingSigs,
         Opt_WarnHiShadows,
         Opt_WarnOrphans,
-        Opt_WarnUnusedDoBind
+        Opt_WarnUnusedDoBind,
+        Opt_WarnTrustworthySafe
       ]
 
 enableGlasgowExts :: DynP ()
diff --git a/libraries/haskell2010 b/libraries/haskell2010
index 425df1d9ea7adcf823bbb5426528bd80eb2b820e..a21abff3e385a85e1353aa720516e148865710a1 160000
--- a/libraries/haskell2010
+++ b/libraries/haskell2010
@@ -1 +1 @@
-Subproject commit 425df1d9ea7adcf823bbb5426528bd80eb2b820e
+Subproject commit a21abff3e385a85e1353aa720516e148865710a1
diff --git a/libraries/haskell98 b/libraries/haskell98
index 401283a98a818f66f856939f939562de5c4a2b47..cf064d954c511a2edddb5a55a1984d57ce36c407 160000
--- a/libraries/haskell98
+++ b/libraries/haskell98
@@ -1 +1 @@
-Subproject commit 401283a98a818f66f856939f939562de5c4a2b47
+Subproject commit cf064d954c511a2edddb5a55a1984d57ce36c407
diff --git a/libraries/hoopl b/libraries/hoopl
index 7f06b16ba3a49c2c927fb06fe7dc89089dd7e29f..a90a3af92be400af8912555bce21b041a1c48ad4 160000
--- a/libraries/hoopl
+++ b/libraries/hoopl
@@ -1 +1 @@
-Subproject commit 7f06b16ba3a49c2c927fb06fe7dc89089dd7e29f
+Subproject commit a90a3af92be400af8912555bce21b041a1c48ad4
diff --git a/libraries/hpc b/libraries/hpc
index d430be4664aac337cd0e49dd6b69e818f21cde6b..60e7bbfeea8ba54688b8f432f0f337b275f06c58 160000
--- a/libraries/hpc
+++ b/libraries/hpc
@@ -1 +1 @@
-Subproject commit d430be4664aac337cd0e49dd6b69e818f21cde6b
+Subproject commit 60e7bbfeea8ba54688b8f432f0f337b275f06c58
diff --git a/libraries/stm b/libraries/stm
index 40fd6d88f75c31b66419ab93f436225c9403846c..6b63e91b2b0b7d7b4bef654117da62c22cac34da 160000
--- a/libraries/stm
+++ b/libraries/stm
@@ -1 +1 @@
-Subproject commit 40fd6d88f75c31b66419ab93f436225c9403846c
+Subproject commit 6b63e91b2b0b7d7b4bef654117da62c22cac34da
diff --git a/mk/validate-settings.mk b/mk/validate-settings.mk
index 52aa6488935e5e15f6de4776a2f70b476e258d29..150aec3323e2fe59c2e1c1479b9d50a9164c41a0 100644
--- a/mk/validate-settings.mk
+++ b/mk/validate-settings.mk
@@ -163,6 +163,13 @@ libraries/dph/dph-lifted-common-install_EXTRA_HC_OPTS += -Wwarn
 # We need to turn of deprecated warnings for SafeHaskell transition
 libraries/array_dist-install_EXTRA_HC_OPTS += -fno-warn-warnings-deprecations
 
+# Turn of trustworthy-safe warning
+libraries/base_dist-install_EXTRA_HC_OPTS += -fno-warn-trustworthy-safe
+libraries/ghc-prim_dist-install_EXTRA_HC_OPTS += -fno-warn-trustworthy-safe
+libraries/containers_dist-install_EXTRA_HC_OPTS += -fno-warn-trustworthy-safe
+libraries/process_dist-install_EXTRA_HC_OPTS += -fno-warn-trustworthy-safe
+libraries/unix_dist-install_EXTRA_HC_OPTS += -fno-warn-trustworthy-safe
+
 # Temporarely disable inline rule shadowing warning
 libraries/bytestring_dist-install_EXTRA_HC_OPTS += -fno-warn-inline-rule-shadowing
 libraries/template-haskell_dist-install_EXTRA_HC_OPTS += -fno-warn-inline-rule-shadowing
diff --git a/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.hs b/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.hs
new file mode 100644
index 0000000000000000000000000000000000000000..12be9b174cdacd5fc4825f015703542150ec5d76
--- /dev/null
+++ b/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.hs
@@ -0,0 +1,10 @@
+{-# LANGUAGE Trustworthy #-}
+{-# OPTIONS_GHC -Wall #-}
+
+-- | This module is marked trustworthy but should be inferable as -XSafe.
+-- Warning enabled through `-W`.
+module TrustworthySafe03 where
+
+g :: Int
+g = 1
+
diff --git a/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.stderr b/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.stderr
new file mode 100644
index 0000000000000000000000000000000000000000..9505d06031d205b5e90b25bd3cf4338c13cc4f32
--- /dev/null
+++ b/testsuite/tests/safeHaskell/safeInfered/TrustworthySafe03.stderr
@@ -0,0 +1,3 @@
+
+TrustworthySafe03.hs:1:14: Warning:
+    ‘TrustworthySafe03’ is marked as Trustworthy but has been inferred as safe!
diff --git a/testsuite/tests/safeHaskell/safeInfered/all.T b/testsuite/tests/safeHaskell/safeInfered/all.T
index 89062cd174d6877d521d93164832a50fd5b3f44d..12e80a7fde690f93849f95f81c555dca0312a74d 100644
--- a/testsuite/tests/safeHaskell/safeInfered/all.T
+++ b/testsuite/tests/safeHaskell/safeInfered/all.T
@@ -76,6 +76,7 @@ test('Mixed03', normal, compile_fail, [''])
 # Trustworthy Safe modules
 test('TrustworthySafe01', normal, compile, [''])
 test('TrustworthySafe02', normal, compile, [''])
+test('TrustworthySafe03', normal, compile, [''])
 test('TrustworthySafe04', normal, compile, [''])
 
 # Check -fwarn-unsafe works