Index: gtk/gtkclist.c
===================================================================
RCS file: /cvs/gnome/gtk+/gtk/gtkclist.c,v
retrieving revision 1.156.2.25
retrieving revision 1.156.2.26
diff -u -p -r1.156.2.25 -r1.156.2.26
--- gtk+-1.2.10/gtk/gtkclist.c	1 Mar 2001 00:18:20 -0000	1.156.2.25
+++ gtk+-1.2.10/gtk/gtkclist.c	14 Dec 2002 04:17:03 -0000	1.156.2.26
@@ -2800,10 +2800,6 @@ real_remove_row (GtkCList *clist,
     clist->row_list_end = g_list_previous (list);
   g_list_remove (list, clist_row);
 
-  /*if (clist->focus_row >=0 &&
-      (row <= clist->focus_row || clist->focus_row >= clist->rows))
-      clist->focus_row--;*/
-
   if (row < ROW_FROM_YPIXEL (clist, 0))
     clist->voffset += clist->row_height + CELL_SPACING;
 
@@ -4331,7 +4327,9 @@ sync_selection (GtkCList *clist,
 	clist->focus_row += d;
       if (clist->focus_row == -1 && clist->rows >= 1)
 	clist->focus_row = 0;
-      else if (clist->focus_row >= clist->rows)
+      else if (d < 0 && clist->focus_row >= clist->rows - 1)
+	clist->focus_row = clist->rows - 2;
+      else if (clist->focus_row >= clist->rows)	/* Paranoia */
 	clist->focus_row = clist->rows - 1;
     }
 
