diff --git a/src/Persefone.jl b/src/Persefone.jl
index cc6fef76642118c4b4c8c2b33fb756f8aa1992e2..4291e31bc9b8d4ff59a44a05bdb7040de3416197 100644
--- a/src/Persefone.jl
+++ b/src/Persefone.jl
@@ -117,7 +117,13 @@ include("nature/species/wyvern.jl")
 include("core/simulation.jl") #this must be last
 
 # precompile important functions
-precompile(initialise, (String,Int))
-precompile(stepsimulation!, (AgentBasedModel,))
+function _precompile()
+    ccall(:jl_generating_output, Cint, ()) == 1 || return nothing
+    precompile(initialise, (String,Int))
+    precompile(stepsimulation!, (AgentBasedModel,))
+    return
+end
+_precompile()
+
 
 end