diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index 60005899926..b853344b9be 100644
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -412,26 +412,6 @@
dat += "
\[ [(src.aistate != STATE_DEFAULT) ? "Main Menu | " : ""]Close \]"
return dat
-/mob/living/silicon/ai/proc/ai_call_shuttle()
- set category = "AI Commands"
- set name = "Call Emergency Shuttle"
- if(usr.stat == 2)
- usr << "You can't call the shuttle because you are dead!"
- return
-
- var/confirm = alert("Are you sure you want to call the shuttle?", "Confirm Shuttle Call", "Yes", "No")
-
- if(confirm == "Yes")
- call_shuttle_proc(src)
-
- // hack to display shuttle timer
- if(emergency_shuttle.online)
- var/obj/machinery/computer/communications/C = locate() in world
- if(C)
- C.post_status("shuttle")
-
- return
-
/proc/enable_prison_shuttle(var/mob/user)
for(var/obj/machinery/computer/prison_shuttle/PS in world)
PS.allowedtocall = !(PS.allowedtocall)
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index b20bc5201e3..d7dd8efb940 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -199,11 +199,41 @@
src << browse(dat, "window=airoster")
onclose(src, "airoster")
+/mob/living/silicon/ai/proc/ai_call_shuttle()
+ set category = "AI Commands"
+ set name = "Call Emergency Shuttle"
+ if(usr.stat == 2)
+ usr << "You can't call the shuttle because you are dead!"
+ return
+ if(istype(usr,/mob/living/silicon/ai))
+ var/mob/living/silicon/ai/AI = usr
+ if(AI.control_disabled)
+ usr << "Wireless control is disabled!"
+ return
+
+ var/confirm = alert("Are you sure you want to call the shuttle?", "Confirm Shuttle Call", "Yes", "No")
+
+ if(confirm == "Yes")
+ call_shuttle_proc(src)
+
+ // hack to display shuttle timer
+ if(emergency_shuttle.online)
+ var/obj/machinery/computer/communications/C = locate() in world
+ if(C)
+ C.post_status("shuttle")
+
+ return
+
/mob/living/silicon/ai/proc/ai_cancel_call()
set category = "AI Commands"
if(usr.stat == 2)
usr << "You can't send the shuttle back because you are dead!"
return
+ if(istype(usr,/mob/living/silicon/ai))
+ var/mob/living/silicon/ai/AI = usr
+ if(AI.control_disabled)
+ usr << "Wireless control is disabled!"
+ return
cancel_call_proc(src)
return
diff --git a/code/modules/mob/living/silicon/ai/move.dm b/code/modules/mob/living/silicon/ai/move.dm
index 9417b640a31..82d6604ba60 100644
--- a/code/modules/mob/living/silicon/ai/move.dm
+++ b/code/modules/mob/living/silicon/ai/move.dm
@@ -7,6 +7,7 @@
/client/proc/AIMove(n,direct,var/mob/living/silicon/ai/user)
if(!user) return
+ if(user.control_disabled) return
var/min_dist = 1e8
var/obj/machinery/camera/closest = null