diff --git a/config.json b/config.json
index f52e1a2165a396bc9a749d7927dd4a0f95c78862..4870974df7ce50ec1c1db19ecfa7a6e2bd9fe9b7 100644
--- a/config.json
+++ b/config.json
@@ -2,7 +2,7 @@
   "AssemblyTag":"assemblyname",
   "ScriptInject":null,
   "AllowScripts":true,
-  "MaxWarnLevel":"Suggestion",
+  "MaxLintLevel":"Suggestion",
   "DontCopyAssets":true,
   "LinkPrefix":"https://exit.rc3.world?link="
 }
diff --git a/lib/CheckDir.hs b/lib/CheckDir.hs
index 4d81bc256d7c5769e5b8e78085617544347fc5b8..680039c83de646dceccb47ae1c16b7fc44c5f241 100644
--- a/lib/CheckDir.hs
+++ b/lib/CheckDir.hs
@@ -4,32 +4,33 @@
 {-# LANGUAGE LambdaCase        #-}
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE TupleSections     #-}
+{-# LANGUAGE TypeFamilies      #-}
 
 -- | Module that contains high-level checking for an entire directory
 module CheckDir (recursiveCheckDir, DirResult(..), resultIsFatal)  where
 
-import           CheckMap               (MapResult (mapresultProvides),
-                                         loadAndLintMap, mapresultDepends)
+import           CheckMap               (MapResult (..), loadAndLintMap)
 import           Control.Monad          (void)
 import           Control.Monad.Extra    (mapMaybeM)
 import           Data.Aeson             (ToJSON, (.=))
 import qualified Data.Aeson             as A
 import           Data.Foldable          (fold)
 import           Data.Functor           ((<&>))
-import           Data.Map               (Map)
+import           Data.Map               (Map, elems, keys)
 import qualified Data.Map               as M
 import           Data.Map.Strict        (mapKeys, (\\))
 import           Data.Maybe             (mapMaybe)
 import           Data.Text              (Text)
 import qualified Data.Text              as T
 import           GHC.Generics           (Generic)
-import           LintConfig             (LintConfig')
+import           LintConfig             (LintConfig', configMaxLintLevel)
 import           Paths                  (normalise, normaliseWithFrag)
 import           System.Directory.Extra (doesFileExist)
 import           System.FilePath        (splitPath, (</>))
 import qualified System.FilePath        as FP
 import           System.FilePath.Posix  (takeDirectory)
-import           Types                  (Dep (Local, LocalMap), Level)
+import           Types                  (Dep (Local, LocalMap), Level (..),
+                                         hintLevel)
 import           Util                   (PrettyPrint (prettyprint))
 
 
@@ -59,9 +60,18 @@ data MissingDep = MissingDep
 newtype MissingAsset = MissingAsset MissingDep
 
 
-resultIsFatal :: DirResult -> Bool
-resultIsFatal res =
-  not $ null (dirresultMissingAssets res)
+resultIsFatal :: LintConfig' -> DirResult -> Bool
+resultIsFatal config res =
+   (not (null (dirresultMissingAssets res)))
+   && (configMaxLintLevel config) <= maxObservedLevel
+   where maxObservedLevel = maximum
+           . map hintLevel
+           . concatMap keys
+           . map mapresultLayer
+           . elems
+           . dirresultMaps
+           $ res
+
 
 
 
diff --git a/lib/LintConfig.hs b/lib/LintConfig.hs
index 5c1ae20fb12f3887cf4030095df15173ff2d53d4..d23735695f061222fec8bd4d7b32ac2c982fdbd7 100644
--- a/lib/LintConfig.hs
+++ b/lib/LintConfig.hs
@@ -34,7 +34,7 @@ data LintConfig f = LintConfig
   -- ^ Link to Script that should be injected
   , configAssemblyTag    :: HKD f Text
   -- ^ Assembly name (used for jitsiRoomAdminTag)
-  , configMaxWarnLevel   :: HKD f Level
+  , configMaxLintLevel   :: HKD f Level
   -- ^ Maximum warn level allowed before the lint fails
   , configDontCopyAssets :: HKD f Bool
   -- ^ Don't copy map assets (mostly useful for development)
diff --git a/lib/WriteRepo.hs b/lib/WriteRepo.hs
index 89e1beac2ff30b7732a6c2fb245d32a5a6299aa4..fbe139baa6483d2508438bfe2e11f985c1fd6308 100644
--- a/lib/WriteRepo.hs
+++ b/lib/WriteRepo.hs
@@ -5,9 +5,8 @@
 -- | Module for writing an already linted map Repository back out again.
 module WriteRepo where
 
-import           CheckDir               (DirResult (dirresultMaps),
-                                         resultIsFatal)
-import           CheckMap               (MapResult (mapresultAdjusted, mapresultDepends))
+import           CheckDir               (DirResult (..), resultIsFatal)
+import           CheckMap               (MapResult (..))
 import           Control.Monad          (forM_, unless)
 import           Data.Aeson             (encodeFile)
 import           Data.Map.Strict        (toList)
@@ -25,11 +24,13 @@ import           System.FilePath.Posix  ((</>))
 import           Types                  (Dep (Local))
 
 
+
 writeAdjustedRepository :: LintConfig' -> FilePath -> FilePath -> DirResult -> IO ExitCode
 writeAdjustedRepository config inPath outPath result
-  | resultIsFatal result && not (configDontCopyAssets config) = do
-      -- putStrLn "FATAL: Repository has missing assets; cannot write to outPath"
+  | resultIsFatal config result =
       pure (ExitFailure 1)
+  | not (configDontCopyAssets config) =
+      pure (ExitSuccess)
   | otherwise = do
       createDirectoryIfMissing True outPath