diff --git a/src/main.jl b/src/main.jl
index 8ae0bbfca6d366de284c83a3e147f920c3268e88..dd2e7391c7ff026c4ad86343780f4e0b8a6f2c7f 100644
--- a/src/main.jl
+++ b/src/main.jl
@@ -276,22 +276,24 @@ function setup_callbacks(env, project, bdryconds, prms, outputdir)
 
   mesh = env.mesh
   # Add some 'global' callbacks
-  savecb_timing = CallbackTiming(every_dt=prms["Output"]["every_dt"],
-                                 every_iteration=prms["Output"]["every_iteration"])
+  savecb_timing_0d = CallbackTiming(every_dt=prms["Output"]["every_dt"],
+                                    every_iteration=prms["Output"]["every_iteration"])
   vars0d = prms["Output"]["variables0d"]
   savecb_0d = SaveCallback(Symbol.(vars0d), mesh.cache, mesh,
                         joinpath(outputdir, "output0d"),
-                        savecb_timing;
+                        savecb_timing_0d;
                         format0d=prms["Output"]["format0d"])
+  savecb_timing_1d = deepcopy(savecb_timing_0d)
   vars1d = prms["Output"]["variables1d"]
   savecb_1d = SaveCallback(Symbol.(vars1d), mesh.cache, mesh,
                         joinpath(outputdir, "output1d"),
-                        savecb_timing;
+                        savecb_timing_1d;
                         format1d=prms["Output"]["format1d"])
+  savecb_timing_2d = deepcopy(savecb_timing_0d)
   vars2d = prms["Output"]["variables2d"]
   savecb_2d = SaveCallback(Symbol.(vars2d), mesh.cache, mesh,
                         joinpath(outputdir, "output2d"),
-                        savecb_timing;
+                        savecb_timing_2d;
                         format2d=prms["Output"]["format2d"])
   savecbs = [ cb for cb in (savecb_0d, savecb_1d, savecb_2d) if !isnothing(cb) ]