diff --git a/src/uifc/uifc32.c b/src/uifc/uifc32.c
index b1be01db886ad50e39738e112b877324f724f542..f5a0bf688bb7452ef9a2288fd72bf40c00d7151b 100644
--- a/src/uifc/uifc32.c
+++ b/src/uifc/uifc32.c
@@ -713,6 +713,8 @@ int ulist(uifc_winmode_t mode, int left, int top, int width, int *cur, int *bar
 	if(mode&WIN_FIXEDHEIGHT) {
 		height=api->list_height;
 	}
+	if(mode & WIN_T2B)
+		top = 0;	// This is overridden later, so don't use top in height calculation in T2B mode
 	if(top+height>s_bottom)
 		height=(s_bottom)-top;
 	if(optheight>height)