> + for (i = data->size; i > 0; i--) > + data->values[i+1] = data->values[i]; > > instead of "i" and "i-1" on the second line. Oh, sorry, forget I said anything. Of course, stopping at data->size seems correct (since the array's size is data->size+1 at that point). Arthur