diff --git a/src/syncterm/bbslist.c b/src/syncterm/bbslist.c
index 982616a2d50eca5bbec67649dcdd81ff4b42e333..827612cb58f61731f73345884feb2926040a499c 100644
--- a/src/syncterm/bbslist.c
+++ b/src/syncterm/bbslist.c
@@ -539,8 +539,18 @@ void change_settings(void)
 			case 2:
 				sprintf(str,"%d",settings.backlines);
 				if(uifc.input(WIN_SAV|WIN_MID,0,0,"Scrollback Lines",str,9,K_NUMBER)!=-1) {
-					settings.backlines=atoi(str);
-					iniSetInteger(&inicontents,"SyncTERM","ScrollBackLines",settings.backlines,&ini_style);
+					unsigned char *tmpscroll;
+
+					j=atoi(str);
+					tmpscroll=(unsigned char *)realloc(scrollback_buf,80*2*j);
+					if(tmpscroll == NULL) {
+						uifc.msg("Cannot allocate space for scrollback.");
+					}
+					else {
+						scrollback_buf=tmpscroll;
+						settings.backlines=j;
+						iniSetInteger(&inicontents,"SyncTERM","ScrollBackLines",settings.backlines,&ini_style);
+					}
 				}
 				break;
 		}