/* Returns: the element, or NULL if the position is off the end of the #GList  */
GList* g_list_nth_prev(GList *list, guint n)
/* Returns: the element, or NULL if the position is off the end of the #GList  */
GList* g_list_nth_prev(GList *list, guint n)
{
  while ((n-- > 0) && list)
    list = list->prev;
  return list;
}