diff --git a/code/game/machinery/airlock_control/airlock_button.dm b/code/game/machinery/airlock_control/airlock_button.dm
index 4ad772aa8f0..eca032cb188 100644
--- a/code/game/machinery/airlock_control/airlock_button.dm
+++ b/code/game/machinery/airlock_control/airlock_button.dm
@@ -45,18 +45,19 @@ GLOBAL_LIST_EMPTY(all_airlock_access_buttons)
/obj/machinery/access_button/attack_hand(mob/user)
add_fingerprint(user)
- if(!powered(power_channel))
+ var/obj/machinery/airlock_controller/C = locateUID(controller_uid)
+ if(!C)
+ to_chat(user, "Could not communicate with controller.")
+ return
+
+ if(!C.powered(C.power_channel))
+ to_chat(user, "No response from controller, possibly offline.")
return
if(!allowed(user) && !user.can_advanced_admin_interact())
to_chat(user, "Access denied.")
return
- var/obj/machinery/airlock_controller/C = locateUID(controller_uid)
- if(!C)
- to_chat(user, "Could not communicate with controller.")
- return
-
C.handle_button(assigned_command)
flick("access_button_cycle", src)