diff --git a/sim/gatedef.lua b/sim/gatedef.lua
index 4a2c60c..56504a1 100644
--- a/sim/gatedef.lua
+++ b/sim/gatedef.lua
@@ -1,5 +1,6 @@
 
 local ffi = FFI or require("ffi")
+local cFuncsByName, cDataSizeByName = (require or Require)("compiled_sim_gates")
 
 GateDefinition = {
 	ports = {},
@@ -7,8 +8,6 @@ GateDefinition = {
 	input = function(gate, argv) end
 }
 
-local cFuncsByName, cDataSizeByName = require("compiled_sim_gates")
-
 function GateDefinition.new(objref, name, description, init, logic, input, global, ports)
 	
 	name = collapseescape(name)
diff --git a/sim/main.lua b/sim/main.lua
index 143d4ab..0b34d6c 100644
--- a/sim/main.lua
+++ b/sim/main.lua
@@ -19,6 +19,7 @@ print("Save location set to \""..OPT_SAVE_DIR.."\"")
 dofile("iosafe.lua")
 FFI = ffi
 Socket = socket
+Require = require
 dofile("utility.lua")
 dofile("simulation.lua")
 dofile("group.lua")
@@ -30,6 +31,7 @@ dofile("save.lua")
 dofile("network.lua")
 FFI = nil
 Socket = nil
+Require = nil
 
 -- Default settings
 OPT_TICK_ENABLED = true