diff --git a/code/game/objects/items/devices/chameleonproj.dm b/code/game/objects/items/devices/chameleonproj.dm
index 13e309b79d..990d6cc038 100644
--- a/code/game/objects/items/devices/chameleonproj.dm
+++ b/code/game/objects/items/devices/chameleonproj.dm
@@ -39,15 +39,24 @@
return
if(!check_sprite(target))
return
- if(!active_dummy)
- if(!(isturf(target) || ismob(target) || istype(target, /obj/structure/falsewall) || istype(target, /obj/effect))) //NOT any of these
- playsound(get_turf(src), 'sound/weapons/flash.ogg', 100, 1, -6)
- to_chat(user, "Scanned [target].")
- var/obj/temp = new/obj()
- temp.appearance = target.appearance
- temp.layer = initial(target.layer) // scanning things in your inventory
- temp.plane = initial(target.plane)
- saved_appearance = temp.appearance
+ if(active_dummy)//I now present you the blackli(f)st
+ return
+ if(isturf(target))
+ return
+ if(ismob(target))
+ return
+ if(istype(target, /obj/structure/falsewall))
+ return
+ if(iseffect(target))
+ if(!(istype(target, /obj/effect/decal))) //be a footprint
+ return
+ playsound(get_turf(src), 'sound/weapons/flash.ogg', 100, 1, -6)
+ to_chat(user, "Scanned [target].")
+ var/obj/temp = new/obj()
+ temp.appearance = target.appearance
+ temp.layer = initial(target.layer) // scanning things in your inventory
+ temp.plane = initial(target.plane)
+ saved_appearance = temp.appearance
/obj/item/chameleon/proc/check_sprite(atom/target)
if(target.icon_state in icon_states(target.icon))