diff --git a/src/sbbs3/addfiles.c b/src/sbbs3/addfiles.c
index d6a1236173fa5548fe6b1957eeed38da0234785c..49ad3ad2cd03a54eba59c0dec5375e2f2c18ac56 100644
--- a/src/sbbs3/addfiles.c
+++ b/src/sbbs3/addfiles.c
@@ -125,7 +125,7 @@ bool get_file_diz(file_t* f, char* ext, size_t maxlen)
 		return false;
 	}
 	printf("Parsing DIZ: %s\n", diz_fpath);
-	str_list_t lines = read_diz(diz_fpath, /* max_line_len: */80);
+	str_list_t lines = read_diz(diz_fpath);
 	format_diz(lines, ext, maxlen, /* allow_ansi: */false);
 	strListFree(&lines);
 	remove(diz_fpath);
diff --git a/src/sbbs3/filedat.c b/src/sbbs3/filedat.c
index f9ffb6015cf59efe5b86e4a4e85ce779f0cec453..2e58056de0d261526f4c7a91e2874c03b989e243 100644
--- a/src/sbbs3/filedat.c
+++ b/src/sbbs3/filedat.c
@@ -923,13 +923,13 @@ bool extract_diz(scfg_t* cfg, file_t* f, str_list_t diz_fnames, char* path, size
 	return false;
 }
 
-str_list_t read_diz(const char* path, size_t max_line_len)
+str_list_t read_diz(const char* path)
 {
 	FILE* fp = fopen(path, "r");
 	if(fp == NULL)
 		return NULL;
 
-	str_list_t lines = strListReadFile(fp, NULL, max_line_len);
+	str_list_t lines = strListReadFile(fp, NULL, /* max_line_len: */255);
 	fclose(fp);
 	return lines;
 }
diff --git a/src/sbbs3/filedat.h b/src/sbbs3/filedat.h
index 169c40aa1362254137f09ae9b1e2ae9c5456f2dd..04d24f13cc817833a93d1cf7c6964ed66ed6d3ab 100644
--- a/src/sbbs3/filedat.h
+++ b/src/sbbs3/filedat.h
@@ -56,7 +56,7 @@ DLLEXPORT bool			addfile(scfg_t*, uint dirnum, file_t*, const char* extdesc);
 DLLEXPORT bool			removefile(scfg_t*, uint dirnum, const char* filename);
 DLLEXPORT char*			format_filename(const char* fname, char* buf, size_t, bool pad);
 DLLEXPORT bool			extract_diz(scfg_t*, file_t*, str_list_t diz_fname, char* path, size_t);
-DLLEXPORT str_list_t	read_diz(const char* path, size_t max_line_len);
+DLLEXPORT str_list_t	read_diz(const char* path);
 DLLEXPORT char*			format_diz(str_list_t lines, char*, size_t maxlen, bool allow_ansi);
 DLLEXPORT char*			prep_file_desc(const char *src, char* dst);
 
diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index 18870ac95624d5d2d528c22ce7f074a0d5323376..11d86b747db27c8c3360a1e9ac626ded49b3dead 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -1075,7 +1075,7 @@ static void receive_thread(void* arg)
 				lprintf(LOG_DEBUG,"%04d <%s> DATA Extracting DIZ from: %s",xfer.ctrl_sock, xfer.user->alias,xfer.filename);
 				if(extract_diz(&scfg, &f, /* diz_fnames */NULL, tmp, sizeof(tmp))) {
 					lprintf(LOG_DEBUG,"%04d <%s> DATA Parsing DIZ: %s",xfer.ctrl_sock, xfer.user->alias,tmp);
-					str_list_t lines = read_diz(tmp, /* max_line_len: */80);
+					str_list_t lines = read_diz(tmp);
 					format_diz(lines, extdesc, sizeof(extdesc), /* allow_ansi: */false);
 					strListFree(&lines);
 					if(!fdesc[0]) {						/* use for normal description */
diff --git a/src/sbbs3/js_filebase.c b/src/sbbs3/js_filebase.c
index f6bfbd45c113670a9f881cd0b5992fd46067d403..f984d21c3c1182d2a1ac3e273ffbb2d108560818 100644
--- a/src/sbbs3/js_filebase.c
+++ b/src/sbbs3/js_filebase.c
@@ -969,7 +969,7 @@ static void get_diz(scfg_t* scfg, file_t* file, char** extdesc)
 	char diz_fpath[MAX_PATH + 1];
 	if(extract_diz(scfg, file, /* diz_fnames: */NULL, diz_fpath, sizeof(diz_fpath))) {
 		char extbuf[LEN_EXTDESC + 1] = "";
-		str_list_t lines = read_diz(diz_fpath, /* max_line_len: */80);
+		str_list_t lines = read_diz(diz_fpath);
 		if(lines != NULL) {
 			format_diz(lines, extbuf, sizeof(extbuf), /* allow_ansi: */false);
 			strListFree(&lines);
diff --git a/src/sbbs3/sbbsdefs.h b/src/sbbs3/sbbsdefs.h
index 277b7c91efe96e0b7731054c72da393940a54b00..d20426e8ae5b3e13b1d89098d3db2ff7571f1352 100644
--- a/src/sbbs3/sbbsdefs.h
+++ b/src/sbbs3/sbbsdefs.h
@@ -505,8 +505,8 @@ typedef enum {						/* Values for xtrn_t.event				*/
 #define LEN_LOCATION	30	/* Location (City, State)						*/
 #define LEN_ZIPCODE 	10	/* Zip/Postal code								*/
 #define LEN_MODEM		 8	/* User modem type description					*/
-#define LEN_FDESC		58	/* File description 							*/
-#define LEN_EXTDESC		1024 /* extended file description */
+#define LEN_FDESC		58	/* File description (summary) 					*/
+#define LEN_EXTDESC		4000	/* Extended file description				*/
 #define LEN_TITLE		70	/* Message title								*/
 #define LEN_MAIN_CMD	28	/* Unused Storage in user.dat					*/
 #define LEN_COLS		3
diff --git a/src/sbbs3/upload.cpp b/src/sbbs3/upload.cpp
index ec1d31c34dafdb92b27e6fb82530ace0c389f1db..2743d285b4396c114e08250a4f84628710e0f57d 100644
--- a/src/sbbs3/upload.cpp
+++ b/src/sbbs3/upload.cpp
@@ -154,7 +154,7 @@ bool sbbs_t::uploadfile(file_t* f)
 		if(extract_diz(&cfg, f, /* diz_fnames: */NULL, str, sizeof(str))) {
 			lprintf(LOG_DEBUG, "Parsing DIZ: %s", str);
 
-			str_list_t lines = read_diz(str, /* max_line_len: */80);
+			str_list_t lines = read_diz(str);
 			if(lines != NULL)
 				format_diz(lines, ext, sizeof(ext), /* allow_ansi: */false);
 			strListFree(&lines);