diff --git a/game/engines/default/engine/interface/ActorTemporaryEffects.lua b/game/engines/default/engine/interface/ActorTemporaryEffects.lua
index f2793a0645428c21ac34d4d003d1a2540968978b..517ad7526fedaba88798ae07dd8feba404588005 100644
--- a/game/engines/default/engine/interface/ActorTemporaryEffects.lua
+++ b/game/engines/default/engine/interface/ActorTemporaryEffects.lua
@@ -90,6 +90,7 @@ end
 function _M:setEffect(eff_id, dur, p, silent)
 	-- Beware, setting to 0 means removing
 	if dur <= 0 then return self:removeEffect(eff_id) end
+	dur = math.ceil(dur)
 
 	for k, e in pairs(_M.tempeffect_def[eff_id].parameters) do
 		if not p[k] then p[k] = e end