diff --git a/code/_onclick/ai_onclick.dm b/code/_onclick/ai_onclick.dm
index a9d63f51c6bb9..1068ed1b02dc8 100644
--- a/code/_onclick/ai_onclick.dm
+++ b/code/_onclick/ai_onclick.dm
@@ -15,7 +15,10 @@
 		// But we return here since we don't want to do regular dblclick handling
 		return
 
-	if(control_disabled || stat) return
+	if(control_disabled || stat) 
+		return
+	if(ismecha(loc)) 
+		return
 
 	if(ismob(A))
 		ai_actual_track(A, TRUE)
diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm
index 118340d2df83a..4bb550e59afae 100644
--- a/code/game/machinery/hologram.dm
+++ b/code/game/machinery/hologram.dm
@@ -316,6 +316,8 @@ GLOBAL_LIST_EMPTY(holopads)
 		return
 	if(istype(robot))
 		interact(robot)
+	if(ismecha(ai.loc)) // AIs must exit mechs before activating holopads.
+		return
 	/*There are pretty much only three ways to interact here.
 	I don't need to check for client since they're clicking on an object.
 	This may change in the future but for now will suffice.*/
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index df4cad6e0014d..b89c9d04f47e6 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -1031,6 +1031,10 @@
 
 //Hack and From Card interactions share some code, so leave that here for both to use.
 /obj/mecha/proc/ai_enter_mech(mob/living/silicon/ai/AI, interaction)
+	var/mob/camera/eye/hologram/hologram_eye = AI.remote_control
+	if(istype(hologram_eye))
+		hologram_eye.release_control()
+		qdel(hologram_eye)
 	AI.aiRestorePowerRoutine = 0
 	AI.forceMove(src)
 	occupant = AI
@@ -1315,6 +1319,7 @@
 			RemoveActions(occupant, 1)
 			mob_container = AI
 			newloc = get_turf(AI.linked_core)
+			AI.eyeobj?.set_loc(newloc)
 			qdel(AI.linked_core)
 	else
 		return
diff --git a/code/modules/mob/camera/eye/hologram_eye.dm b/code/modules/mob/camera/eye/hologram_eye.dm
index a30c63827a9dd..9eb9d1f435245 100644
--- a/code/modules/mob/camera/eye/hologram_eye.dm
+++ b/code/modules/mob/camera/eye/hologram_eye.dm
@@ -2,7 +2,6 @@
 	name = "Inactive Hologram Eye"
 	ai_detector_visible = FALSE
 	acceleration = FALSE
-	relay_speech = TRUE
 	var/obj/machinery/hologram/holopad/holopad
 
 /mob/camera/eye/hologram/Initialize(mapload, owner_name, camera_origin, mob/living/user)