diff --git a/build-settings.lua b/build-settings.lua
index 9f4b5523e644876dbfc25d1fcc5422e789b18731..7ef2a0c1434586942c8ef4dd61b5663d2d1a7a9b 100644
--- a/build-settings.lua
+++ b/build-settings.lua
@@ -28,6 +28,10 @@ end
 
 local function copyWithNLS(t, callback)
     local nt = {}
+    local mt = getmetatable(t)
+    if mt then
+        setmetatable(nt, mt)
+    end
     for k, v in pairs(t) do
         if type(v) == 'string' then
             v = callback(v) or v