Help with TList Sort - I'm doing something dumb

I hope I've cut out enough of the code to make it understable.
Problem is, that even though I don't have any syntax problems, I do a
real fast crash as soon as I hit the sort method.

The data which is in the TList looks fine.  I haven't used the sort
method before & I'm obviously doing something dumb. I don't have a
clue. Any ideas would be appreciated.

Code snipped follows:

 TListSortCompare = function(Item1, Item2: Pointer): Integer;

 PMatingPoolType = ^MatingPool;
 MatingPool = record
   pChromo: pChromoType; {defined elsewhere}
   sFitnessPercentage: Single;
   MatingPoolList :TList;
   myfn: TListSortCompare;
   pMatingPool: PMatingPoolType;

{these variables & procedures are actually in class TEP}
procedure TEP.CreateMatingPool();
   {create and completely fill in MatingPoolList here.
    with items of pMatingPool.}
function myfn(Item1, Item2: Pointer): Integer;
   a, b : PMatingPoolType;
   a := PMatingPoolType(Item1^);
   b := PMatingPoolType(Item2^);

   if (a^.sFitnessPercentage) < (b^.sFitnessPercentage)
      then myfn := -1
      else myfn := 1;

Richard V. Downing              Work email:
Senior Software Engineer        Home email:
VideoConferencing Systems, Inc. Web:
Norcross, Ga
------------ When surrounded by wolves 'tis best to howl -------------