Index: /luci/trunk/libs/cbi/luasrc/cbi.lua
===================================================================
--- /luci/trunk/libs/cbi/luasrc/cbi.lua	(revision 5527)
+++ /luci/trunk/libs/cbi/luasrc/cbi.lua	(revision 5556)
@@ -520,8 +520,4 @@
 
 function Delegator.set(self, name, node)
-	if type(node) == "table" and getmetatable(node) == nil then
-		node = Compound(unpack(node))
-	end
-	assert(type(node) == "function" or instanceof(node, Compound), "Invalid")
 	assert(not self.nodes[name], "Duplicate entry")
 
@@ -563,5 +559,15 @@
 
 function Delegator.get(self, name)
-	return self.nodes[name]
+	local node = self.nodes[name]
+
+	if type(node) == "string" then
+		node = load(node)
+	end
+
+	if type(node) == "table" and getmetatable(node) == nil then
+		node = Compound(unpack(node))
+	end
+
+	return node
 end
 
