diff --git a/src/uifc/uifc32.c b/src/uifc/uifc32.c
index e86bd6a443a1cc925b3be334c05d10b22d5b9225..2e1f9ac1af8a4a59524dba73619b5e943f4b3890 100644
--- a/src/uifc/uifc32.c
+++ b/src/uifc/uifc32.c
@@ -931,8 +931,8 @@ 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) {
-				(*bar)=(height-vbrdrsize)-(opts-*cur);
-				i=(*cur)-(*bar);
+				(*bar)=(height-vbrdrsize);
+				i=(*cur)-(*bar)+1;
 			}
 		}
 		if((*cur)<0)