diff --git a/src/p_user.c b/src/p_user.c
index 29c5cf546112ca39eaec42f78cc966f347f162f2..d0b49000fb61adf01b723dde4a11c7e80a176b36 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -347,6 +347,11 @@ void P_GiveEmerald(boolean spawnObj)
 				continue;
 			P_SetTarget(&emmo->target, players[i].mo);
 			P_SetMobjState(emmo, mobjinfo[MT_GOTEMERALD].meleestate + em);
+			
+			// Make sure we're not being carried before our tracer is changed
+			if (players[i].powers[pw_carry] != CR_NIGHTSMODE)
+				players[i].powers[pw_carry] = CR_NONE;
+			
 			P_SetTarget(&players[i].mo->tracer, emmo);
 
 			if (pnum == 255)