Well, I've stumbled onto a bug in BList (SortItems). Examine the following code: /* FILE: list.cpp PROJECT: Experiment AUTHOR: Zenja Solaja CREATION DATE: 23 November 2005 DESCRIPTION: BList vs STL list comparison The lists are of integer type */ #include <StorageKit.h> // BList #include <list> // STL list #include "stdio.h" /* Local Data */ const int size = 10; int sample_data[size] = {10,9,8,7,6,5,4,3,2,1}; /* FUNCTION: int_sort ARGUMENTS: a, b RETURN: -1 if a < b 0 if a = b 1 if a > b DESCRIPTION: Basic sort function */ int int_sort(const void *a, const void *b) { int *c = (int *) a; int *d = (int *) d; if (*c < *d) return -1; else if (*c > *d) return 1; else return 0; } /* FUNCTION: print_BList ARGUMENTS: list RETURN: none DESCRIPTION: Print all items of a list */ void print_BList(BList alist) { for (int i=0; i < alist.CountItems(); i++) { int *p = (int *)alist.ItemAt(i); printf("%d,", *p); } printf("\n"); } /* FUNCTION: print_BList ARGUMENTS: list RETURN: none DESCRIPTION: Print all items of a list */ void print_STL_list(list <int *> alist) { list<int *>::iterator p = alist.begin(); while (p != alist.end()) { printf("%d,", *(*p)); p++; } printf("\n"); } /* FUNCTION: main ARGUMENTS: RETURN: exit code DESCRIPTION: "If it compiles, ship it..." */ int main() { int i; // BList test BList b_list; for (i=0; i < size; i++) b_list.AddItem(&sample_data[i]); printf("BList before sort:\n"); print_BList(b_list); // Sort b_list.SortItems(int_sort); printf("BList after sort:\n"); print_BList(b_list); // STL test list <int *> stl_list; for (i=0; i < size; i++) stl_list.push_back(&sample_data[i]); printf("\nSTL list before sort:\n"); print_STL_list(stl_list); // Sort stl_list.sort(int_sort); printf("STL list after sort:\n"); print_STL_list(stl_list); return 0; } And it's output: /boot/home/test/List>BeApp BList before sort: 10,9,8,7,6,5,4,3,2,1, BList after sort: 10,9,8,7,6,5,4,3,2,1, STL list before sort: 10,9,8,7,6,5,4,3,2,1, STL list after sort: 1,2,3,4,5,6,7,8,9,10, /boot/home/test/List> It seems that the BList SortItems() function is b0rken (Zeta R1.1). I've spent all afternoon chasing this bug, and always puzzled why the sorting function never sorted when using BList. I've switched the algorithm to STL, and it works. For the life of me, I cannot see anything wrong at my end. Anyone got any ideas?