diff --git a/package/gluon-core/files/lib/gluon/functions/sysconfig.sh b/package/gluon-core/files/lib/gluon/functions/sysconfig.sh
index 67aa10613fd52c771201637588e6d3b556d80b88..60b410f24485101d621a491983ce8a9bf3566001 100644
--- a/package/gluon-core/files/lib/gluon/functions/sysconfig.sh
+++ b/package/gluon-core/files/lib/gluon/functions/sysconfig.sh
@@ -12,3 +12,7 @@ sysconfig_isset() {
 sysconfig_set() {
 	echo -n "$2" > "$SYSCONFIGDIR/$1"
 }
+
+sysconfig_unset() {
+	rm -f "$SYSCONFIGDIR/$1"
+}
diff --git a/package/gluon-core/files/usr/lib/lua/gluon/sysconfig.lua b/package/gluon-core/files/usr/lib/lua/gluon/sysconfig.lua
index 35c5062c1c9a7cc91978d22b019e85ccd515d942..3ba26e950254c5322515c40eb972d09d662a5385 100644
--- a/package/gluon-core/files/usr/lib/lua/gluon/sysconfig.lua
+++ b/package/gluon-core/files/usr/lib/lua/gluon/sysconfig.lua
@@ -11,10 +11,13 @@ local function get(_, name)
 end
 
 local function set(_, name, val)
-	local ret = nil
-	local f = io.open(sysconfigdir .. name, 'w+')
-	f:write(val)
-	f:close()
+	if val then
+		local f = io.open(sysconfigdir .. name, 'w+')
+		f:write(val)
+		f:close()
+	else
+		os.remove(sysconfigdir .. name)
+	end
 end
 
 local setmetatable = setmetatable