diff --git client/gui-sdl/chatline.c client/gui-sdl/chatline.c
index c72799b..f3fe4e1 100644
--- client/gui-sdl/chatline.c
+++ client/gui-sdl/chatline.c
@@ -264,15 +264,16 @@ static void popup_load_game_dialog(void)
     area.y + 1,
     area.h - adj_size(2), TRUE);
 
-  /* add filename labels to list */
-  pFilenameLabel = pFirstLabel;
+  /* add filename labels to list (in reverse order so that first on list
+   * -- most recent save -- ends up visible in scroll window) */
+  pFilenameLabel = pLastLabel;
   while (pFilenameLabel) {
     pFilenameLabel->size.w = area.w - scrollbar_width - 3;
 
-    pNextLabel = pFilenameLabel->prev;
+    pNextLabel = pFilenameLabel->next;
 
     del_widget_pointer_from_gui_list(pFilenameLabel);
-    if (pFilenameLabel == pFirstLabel) {
+    if (pFilenameLabel == pLastLabel) {
       add_widget_to_vertical_scroll_widget_list(pLoadDialog,
           pFilenameLabel, pCloseButton,
           FALSE,
@@ -281,13 +282,13 @@ static void popup_load_game_dialog(void)
     } else {
       add_widget_to_vertical_scroll_widget_list(pLoadDialog,
           pFilenameLabel,
-          pLoadDialog->pBeginActiveWidgetList,
-          FALSE,
+          pLoadDialog->pEndActiveWidgetList,
+          TRUE,
           area.x + 1,
           area.y + adj_size(2));
     }
     
-    if (pFilenameLabel == pLastLabel) {
+    if (pFilenameLabel == pFirstLabel) {
       break;
     }
          
