diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index a47b51aee79ce0c8ddc75555cfdffe9516bbc1f1..4af980cb598d4f6c0067f419aef63972850b4eb1 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -1010,6 +1010,7 @@ public:
 	/* xtrn.cpp */
 	int		external(const char* cmdline, long mode, const char* startup_dir=NULL);
 	long	xtrn_mode;
+	char	term_env[256];
 
 	/* xtrn_sec.cpp */
 	int		xtrn_sec(const char* section = "");	/* The external program section  */
diff --git a/src/sbbs3/xtrn.cpp b/src/sbbs3/xtrn.cpp
index 6af8443cd845090de41cf2747e1e3f8b3cf44ffd..2ae7300a388ff65550816d457c28648e69825b56 100644
--- a/src/sbbs3/xtrn.cpp
+++ b/src/sbbs3/xtrn.cpp
@@ -1529,11 +1529,10 @@ int sbbs_t::external(const char* cmdline, long mode, const char* startup_dir)
 		sigfillset(&sigs);
 		sigprocmask(SIG_UNBLOCK,&sigs,NULL);
 		if(!(mode&EX_BIN))  {
-			static char	term_env[256];
 			if(term_supports(ANSI))
-				sprintf(term_env,"TERM=%s",startup->xtrn_term_ansi);
+				SAFEPRINTF(term_env,"TERM=%s",startup->xtrn_term_ansi);
 			else
-				sprintf(term_env,"TERM=%s",startup->xtrn_term_dumb);
+				SAFEPRINTF(term_env,"TERM=%s",startup->xtrn_term_dumb);
 			putenv(term_env);
 		}
 #ifdef __FreeBSD__