Memory leaks

I'm having a small problem with Borland Pascal 7.0.  It seems that when I
allocate some memory, and then de-allocate it, it fails to free around
12K of it.  I know *where* it happens, but not *why*.  I threw together
the following program that gives exactly the same result.  When I run
it the second GetFreeSpace comes out about 12K less than the first.
Any ideas?  Is this my computer?  In my head?  A small delusion?  Since
it is only 12K I can live with losing it since I only allocate it once...
and BP is nice enough to do garbage collection when the program
terminates, but I would like to know why it is happening.

uses winapi,crt;
var BGSprites:array[0..255] of Thandle;
    count:byte;
begin
 writeln(GetFreeSpace(0));
 for count:=0 to 255 do
  BGSprites[count]:=GlobalAlloc(Gmem_Moveable,32*32);
 for count:=0 to 255 do
  GlobalFree(BGSprites[count]);
 writeln(GetFreeSpace(0));
 readkey;
end.

--TCA of NewOrder  |  iuzzo...@nmia.com  |  http://www.nmt.edu/~surface
Project WallyWorld Quote:  "We haven't even begun to leak!"