diff --git a/mesecons/util.lua b/mesecons/util.lua
index b9b0cef8f36969e63cf18ffd39471a6ac3b62b58..39f56968d0677e3d22d68222171647c833c4ce95 100644
--- a/mesecons/util.lua
+++ b/mesecons/util.lua
@@ -151,24 +151,6 @@ function mesecon.tablecopy(table) -- deep table copy
 	return newtable
 end
 
-function mesecon.tablecopy_stripfunctions(table) -- deep table copy, but remove all functions
-	if type(table) == "function" then return nil end -- functions become nil
-	if type(table) ~= "table" then return table end -- no need to copy
-	local newtable = {}
-
-	for idx, item in pairs(table) do
-		if type(idx) ~= "function" then
-			if type(item) == "table" then
-				newtable[idx] = mesecon.tablecopy_stripfunctions(item)
-			elseif type(item) ~= "function" then
-				newtable[idx] = item
-			end
-		end
-	end
-
-	return newtable
-end
-
 function mesecon.cmpAny(t1, t2)
 	if type(t1) ~= type(t2) then return false end
 	if type(t1) ~= "table" and type(t2) ~= "table" then return t1 == t2 end
diff --git a/mesecons_luacontroller/init.lua b/mesecons_luacontroller/init.lua
index 3c34887fa7cb3c2a57618dbc2bc66f9736149ab8..d874fdf20e5a261b4a849f24f6853749a134ba01 100644
--- a/mesecons_luacontroller/init.lua
+++ b/mesecons_luacontroller/init.lua
@@ -278,9 +278,11 @@ local function get_digiline_send(pos)
 			return false
 		end
 
-		-- No sending functions over the wire and make sure serialized version
-		-- of the data is not insanely long to prevent DoS-like attacks
-		msg = mesecon.tablecopy_stripfunctions(msg)
+		-- It is technically possible to send functions over the wire since
+		-- the high performance impact of stripping those from the data has
+		-- been decided to not be worth the added realism.
+		-- Make sure serialized version of the data is not insanely long to
+		-- prevent DoS-like attacks
 		local msg_ser = minetest.serialize(msg)
 		if #msg_ser > mesecon.setting("luacontroller_digiline_maxlen", 50000) then
 			return false