diff --git a/script/config/template.lua b/script/config/template.lua
index 6919efa8f557854f5465dbcecb22525d394a8d87..ba0fd503bab5b9540b553949bd236b05fa99e501 100644
--- a/script/config/template.lua
+++ b/script/config/template.lua
@@ -317,12 +317,12 @@ local template = {
     ['Lua.workspace.maxPreload']            = Type.Integer >> 5000,
     ['Lua.workspace.preloadFileSize']       = Type.Integer >> 500,
     ['Lua.workspace.library']               = Type.Array(Type.String),
-    ['Lua.workspace.checkThirdParty']       = Type.String >> 'Ask' << {
+    ['Lua.workspace.checkThirdParty']       = Type.Or(Type.String >> 'Ask' << {
                                                 'Ask',
                                                 'Apply',
                                                 'ApplyInMemory',
                                                 'Disable',
-                                            },
+                                            }, Type.Boolean),
     ['Lua.workspace.userThirdParty']        = Type.Array(Type.String),
     ['Lua.completion.enable']               = Type.Boolean >> true,
     ['Lua.completion.callSnippet']          = Type.String  >> 'Disable' << {
diff --git a/script/library.lua b/script/library.lua
index 290b5b335ff84898a4b65e070488fa5961f3a716..4446797a77e22aae9483698800f2eca4a39e6ac8 100644
--- a/script/library.lua
+++ b/script/library.lua
@@ -610,13 +610,9 @@ local function check3rd(uri)
     end
     local checkThirdParty = config.get(uri, 'Lua.workspace.checkThirdParty')
     -- Backwards compatability: `checkThirdParty` used to be a boolean.
-    -- Note: `checkThirdParty` is defined as a string, so if a boolean is
-    -- supplied, it's converted to a string by the `config.config` module.
-    -- Hence we check for the strings `'true'` and `'false`' here, rather than
-    -- the boolean literals.
-    if checkThirdParty == 'Disable' or checkThirdParty == 'false' then
+    if not checkThirdParty or checkThirdParty == 'Disable' then
         return
-    elseif checkThirdParty == 'true' then
+    elseif checkThirdParty == true then
         checkThirdParty = 'Ask'
     end
     local scp = scope.getScope(uri)