diff --git a/src/uifc/uifc32.c b/src/uifc/uifc32.c
index db79086da2ad267a187fff9677ca44c59cd62878..9e485beb87c291bd73a7cbb06cd442eae6e73e27 100644
--- a/src/uifc/uifc32.c
+++ b/src/uifc/uifc32.c
@@ -403,9 +403,9 @@ int ulist(int mode, int left, int top, int width, int *cur, int *bar
 		}
 	}
 	if(mode&WIN_L2R)
-		left=(s_right-s_left)/2-(width/2)+(api->scrn_width-s_right);
+		left=(s_right-s_left+1)/2-(width/2)+(s_left);
 	else if(mode&WIN_RHT)
-		left=s_right-width;
+		left=api->scrn_width-(width+4+left);
 	if(mode&WIN_T2B)
 		top=(api->scrn_len/2)-(height/2)-2;
 	else if(mode&WIN_BOT)