diff --git a/src/sbbs3/readtext.c b/src/sbbs3/readtext.c
index a23674f876c79378d1812ed38fd1abad9ce391a3..7e813c8fce993c07f837586758d12d2ed2fba253 100644
--- a/src/sbbs3/readtext.c
+++ b/src/sbbs3/readtext.c
@@ -7,7 +7,7 @@
 /****************************************************************************/
 char *readtext(long *line,FILE *stream,long dflt)
 {
-	char buf[2048],str[2048],tmp[256],*p,*p2;
+	char buf[MAX_TEXTDAT_ITEM_LEN+256],str[MAX_TEXTDAT_ITEM_LEN+1],tmp[256],*p,*p2;
 	int i,j,k;
 
 	if(!fgets(buf,256,stream)) {
@@ -27,7 +27,7 @@ char *readtext(long *line,FILE *stream,long dflt)
 		goto use_default;
 	}
 	if(*(p+1)=='\\')	/* merge multiple lines */
-		while(strlen(buf)<2000) {
+		while(strlen(buf)<MAX_TEXTDAT_ITEM_LEN) {
 			if(!fgets(str,255,stream)) {
 				/* Hide the EOF */
 				if(feof(stream))
@@ -47,7 +47,7 @@ char *readtext(long *line,FILE *stream,long dflt)
 		}
 	*(p)=0;
 	k=strlen(buf);
-	for(i=1,j=0;i<k;j++) {
+	for(i=1,j=0;i<k && j<sizeof(str)-1;j++) {
 		if(buf[i]=='\\')	{ /* escape */
 			i++;
 			if(isdigit(buf[i])) {
diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index be0fccb17e81594311f4fa9fcf452b9387667da4..dddba8f81c531ed5e343f0fbfa4c2b65f948f32e 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -538,7 +538,7 @@ public:
 	char	getkey(long mode); 		/* Waits for a key hit local or remote  */
 	long	getkeys(const char *str, ulong max);
 	void	ungetkey(char ch);		/* Places 'ch' into the input buffer    */
-	char	question[128];
+	char	question[MAX_TEXTDAT_ITEM_LEN+1];
 	bool	yesno(const char *str);
 	bool	noyes(const char *str);
 	void	pause(void);
diff --git a/src/sbbs3/sbbsdefs.h b/src/sbbs3/sbbsdefs.h
index 13296b4e3bb93b4e9f095cc19a2a777d56294bf8..e02e2bcdac8b7ed8c41df9f6bd7e61b55bb88d8f 100644
--- a/src/sbbs3/sbbsdefs.h
+++ b/src/sbbs3/sbbsdefs.h
@@ -99,6 +99,8 @@ typedef struct {
 #define MAX_FILES	  10000 /* Maximum number of files per dir			*/
 #define MAX_USERXFER	500 /* Maximum number of dest. users of usrxfer */
 
+#define MAX_TEXTDAT_ITEM_LEN	2000
+
 
 #define LEN_DIR		63		/* Maximum length of directory paths		*/
 #define LEN_CMD		63		/* Maximum length of command lines			*/