diff --git a/src/sbbs3/js_uifc.c b/src/sbbs3/js_uifc.c
index 1b69e35806b01ebf19ba7a06f1d92157c6e5cffb..73859ad91d5c40149187212bcfc53d50e4c4c795 100644
--- a/src/sbbs3/js_uifc.c
+++ b/src/sbbs3/js_uifc.c
@@ -44,6 +44,7 @@ struct list_ctx_private {
 	int top;
 	int width;
 };
+
 struct showbuf_ctx_private {
 	int	cur;
 	int bar;
diff --git a/src/uifc/uifc32.c b/src/uifc/uifc32.c
index 55b4599d4a2e436eb203d7ab8f08b4f026d26acb..e520ed468788bf63fce4a0a9d83109061f92a625 100644
--- a/src/uifc/uifc32.c
+++ b/src/uifc/uifc32.c
@@ -931,10 +931,7 @@ int ulist(int mode, int left, int top, int width, int *cur, int *bar
 				(*cur)=(*bar);
 			i=(*cur)-(*bar);
 			if(i+(height-vbrdrsize-1)>=opts) {
-				i=opts-(height-vbrdrsize);
-				if(i<0)
-					i=0;
-				(*cur)=i+(*bar);
+				(*bar)=(height-vbrdrsize)-(opts-cur);
 			}
 		}
 		if((*cur)<0)