diff --git a/sim/main.lua b/sim/main.lua
index 60f7b24..143d4ab 100644
--- a/sim/main.lua
+++ b/sim/main.lua
@@ -1,7 +1,7 @@
 
 -- External requirements
-socket = require("socket")
-ffi = require("ffi")
+local socket = require("socket")
+local ffi = require("ffi")
 
 -- Disallow access to undefined global variables (helps detect errors)
 assert(getmetatable(_G)==nil, "_G already has a metatable")
@@ -18,6 +18,7 @@ print("Save location set to \""..OPT_SAVE_DIR.."\"")
 -- Local includes
 dofile("iosafe.lua")
 FFI = ffi
+Socket = socket
 dofile("utility.lua")
 dofile("simulation.lua")
 dofile("group.lua")
@@ -28,6 +29,7 @@ dofile("gate.lua")
 dofile("save.lua")
 dofile("network.lua")
 FFI = nil
+Socket = nil
 
 -- Default settings
 OPT_TICK_ENABLED = true
diff --git a/sim/network.lua b/sim/network.lua
index ecfad58..55411a0 100644
--- a/sim/network.lua
+++ b/sim/network.lua
@@ -1,4 +1,6 @@
 
+local socket = Socket or require("socket")
+
 function network_send(data)
 	client:send(data)
 end