diff --git a/code/datums/mutations/actions.dm b/code/datums/mutations/actions.dm
index 6e704e3440..31f427c830 100644
--- a/code/datums/mutations/actions.dm
+++ b/code/datums/mutations/actions.dm
@@ -333,20 +333,20 @@
action_icon = 'icons/mob/actions/actions_genetic.dmi'
action_icon_state = "lay_web"
-/obj/effect/proc_holder/spell/self/lay_genetic_web/cast_check(skipcharge = 0,mob/user = usr)
- . = ..()
+/obj/effect/proc_holder/spell/self/lay_genetic_web/cast(list/targets, mob/user = usr)
+ var/failed = FALSE
if(!isturf(user.loc))
to_chat(user, "You can't lay webs here!")
- return FALSE
+ failed = TRUE
var/turf/T = get_turf(user)
var/obj/structure/spider/stickyweb/genetic/W = locate() in T
if(W)
to_chat(user, "There's already a web here!")
+ failed = TRUE
+ if(failed)
+ revert_cast(user)
return FALSE
-/obj/effect/proc_holder/spell/self/lay_genetic_web/cast(list/targets, mob/user = usr)
- var/turf/T = get_turf(user)
-
user.visible_message("[user] begins to secrete a sticky substance.","You begin to lay a web.")
if(!do_after(user, 4 SECONDS, target = T))
to_chat(user, "Your web spinning was interrupted!")