anchor.diff:  	examine_text += span_notice("The cover panel to the integrated circuit is [locked? "locked" : "unlocked"].")
   	var/obj/item/stock_parts/cell/cell = attached_circuit.cell
   	examine_text += span_notice("The charge meter reads [cell ? round(cell.percent(), 1) : 0]%.")
  +	if((shell_flags & SHELL_FLAG_REQUIRE_ANCHOR) && !source.anchored)
  +		examine_text += span_notice("The integrated circuit is non-functional whilst the shell is unanchored.")
   
   	if (shell_flags & SHELL_FLAG_USB_PORT)
   		examine_text += span_notice("There is a <b>USB port</b> on the front.")
   
   /**
  - * Called when the shell is wrenched.
  + * Called when the shell is anchored.
    *
    * Only applies if the shell has SHELL_FLAG_REQUIRE_ANCHOR.
    * Disables the integrated circuit if unanchored, otherwise enable the circuit.
    */
  -/datum/component/shell/proc/on_unfasten(atom/source, anchored)
  -	SIGNAL_HANDLER
  -	attached_circuit?.on = anchored
  +/datum/component/shell/proc/on_set_anchored(atom/movable/source, previous_value)
  +	SIGNAL_HANDLER
  +	attached_circuit?.on = source.anchored
  +
   /**
    * Called when an item hits the parent. This is the method to add the circuitboard to the component.
    */
  
positive.code: 		COMSIG_ATOM_TOOL_ACT(TOOL_SCREWDRIVER),
  		COMSIG_ATOM_TOOL_ACT(TOOL_MULTITOOL),
  		COMSIG_OBJ_DECONSTRUCT,
  		COMSIG_OBJ_DEFAULT_UNFASTEN_WRENCH,
  		COMSIG_PARENT_EXAMINE,
  		COMSIG_ATOM_ATTACK_GHOST,
  		COMSIG_ATOM_USB_CABLE_TRY_ATTACH,
  
negative.code: 	attached_circuit.locked = FALSE
  
  	if(shell_flags & SHELL_FLAG_REQUIRE_ANCHOR)
  		attached_circuit.on = parent_atom.anchored
  
  	if(circuitboard.loc != parent_atom)
  		circuitboard.forceMove(parent_atom)
  