diff --git a/code/controllers/subsystem/weather.dm b/code/controllers/subsystem/weather.dm
index 8c0cf2c5681..8a11799891f 100644
--- a/code/controllers/subsystem/weather.dm
+++ b/code/controllers/subsystem/weather.dm
@@ -31,8 +31,7 @@ SUBSYSTEM_DEF(weather)
run_weather(W, list(text2num(z)))
eligible_zlevels -= z
var/randTime = rand(3000, 6000)
- addtimer(CALLBACK(src, .proc/make_eligible, z, possible_weather), randTime + initial(W.weather_duration_upper), TIMER_UNIQUE) //Around 5-10 minutes between weathers
- next_hit_by_zlevel["[z]"] = world.time + randTime + initial(W.telegraph_duration)
+ next_hit_by_zlevel["[z]"] = addtimer(CALLBACK(src, .proc/make_eligible, z, possible_weather), randTime + initial(W.weather_duration_upper), TIMER_UNIQUE|TIMER_STOPPABLE) //Around 5-10 minutes between weathers
/datum/controller/subsystem/weather/Initialize(start_timeofday)
for(var/V in subtypesof(/datum/weather))
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 1a119ffbaa2..b02b4f84b05 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -503,7 +503,7 @@ GENE SCANNER
to_chat(user, "[src]'s barometer function says that the next storm will breeze on by.")
else
var/next_hit = SSweather.next_hit_by_zlevel["[T.z]"]
- var/fixed = next_hit ? next_hit - world.time : -1
+ var/fixed = next_hit ? timeleft(next_hit) : -1
if(fixed < 0)
to_chat(user, "[src]'s barometer function was unable to trace any weather patterns.")
else