diff --git a/source/core/gamecontrol.h b/source/core/gamecontrol.h
index 6a3894d2d..622441e54 100644
--- a/source/core/gamecontrol.h
+++ b/source/core/gamecontrol.h
@@ -206,3 +206,4 @@ bool UIActive();
 void updatePauseStatus();
 void updatePauseStatus(bool state, bool multiplayer);
 extern int paused;
+extern int chatmodeon;
diff --git a/source/games/duke/src/constants.h b/source/games/duke/src/constants.h
index 2deb53c85..d2c79dc0b 100644
--- a/source/games/duke/src/constants.h
+++ b/source/games/duke/src/constants.h
@@ -486,7 +486,6 @@ enum gamemode_t {
 	MODE_DEMO = 0x00000002,
 	MODE_GAME = 0x00000004,
 	MODE_EOL = 0x00000008,
-	MODE_TYPE = 0x00000010,
 	MODE_RESTART = 0x00000020,
 };
 
diff --git a/source/games/duke/src/d_menu.cpp b/source/games/duke/src/d_menu.cpp
index f7e409474..b2f5cfa44 100644
--- a/source/games/duke/src/d_menu.cpp
+++ b/source/games/duke/src/d_menu.cpp
@@ -39,6 +39,7 @@ Prepared for public release: 03/21/2003 - Charlie Wiederhold, 3D Realms
 #include "version.h"
 #include "names.h"
 #include "mapinfo.h"
+#include "gamestate.h"
 #include "../../glbackend/glbackend.h"
 
 
diff --git a/source/games/duke/src/render.cpp b/source/games/duke/src/render.cpp
index 839d7db40..9608bbc80 100644
--- a/source/games/duke/src/render.cpp
+++ b/source/games/duke/src/render.cpp
@@ -295,7 +295,7 @@ void setdrugmode(player_struct *p, int oyrepeat)
 {
 	if (playrunning())
 	{
-		if (p->DrugMode > 0 && !(p->gm & MODE_TYPE))
+		if (p->DrugMode > 0)
 		{
 			int var_8c;
 			if (p->drug_stat[0] == 0)
diff --git a/source/games/duke/src/sectors_d.cpp b/source/games/duke/src/sectors_d.cpp
index d34b11278..3bd5bf4e7 100644
--- a/source/games/duke/src/sectors_d.cpp
+++ b/source/games/duke/src/sectors_d.cpp
@@ -1518,7 +1518,7 @@ void checksectors_d(int snum)
 
 	//After this point the the player effects the map with space
 
-	if (p->gm & MODE_TYPE || sprite[p->i].extra <= 0) return;
+	if (chatmodeon || sprite[p->i].extra <= 0) return;
 
 	if (ud.cashman && PlayerInput(snum, SKB_OPEN))
 		fi.lotsofmoney(&sprite[p->i], 2);
diff --git a/source/games/duke/src/sectors_r.cpp b/source/games/duke/src/sectors_r.cpp
index d7be602e7..17f27df4f 100644
--- a/source/games/duke/src/sectors_r.cpp
+++ b/source/games/duke/src/sectors_r.cpp
@@ -2477,7 +2477,7 @@ void checksectors_r(int snum)
 
 	//After this point the the player effects the map with space
 
-	if (p->gm & MODE_TYPE || sprite[p->i].extra <= 0) return;
+	if (chatmodeon || sprite[p->i].extra <= 0) return;
 
 	if (ud.cashman && PlayerInput(snum, SKB_OPEN))
 		fi.lotsofmoney(&sprite[p->i], 2);