Still not 100% sure that there is a bug in the drawalpha or drawadd but after looking up a page on deja I made a few changes to the drawadd function, and bang it works as I want it to work. Here is the code

[pascal]
procedure TGLXImageItem.DrawAdd(X, Y, PatternIndex: Integer; Alpha: Single);
begin
glColor4f(1.0,1.0,1.0,Alpha);

glPushAttrib(GL_ENABLE_BIT);
glEnable (GL_TEXTURE_2D);
glEnable (GL_BLEND);
glDisable (GL_DEPTH_TEST);

// glBlendFunc(GL_SRC_ALPHA,GL_ONE);

{next two lines added by myself}

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glAlphaFunc(GL_GREATER, 0);

Bind;

glBegin(GL_QUADS);
with FPatterns[PatternIndex] do begin
glTexCoord2f(Left , Bottom); glVertex2i(X , Y);
glTexCoord2f(Right, Bottom); glVertex2i(X+PatternWidth, Y);
glTexCoord2f(Right, Top ); glVertex2i(X+PatternWidth, Y+PatternHeight);
glTexCoord2f(Left , Top ); glVertex2i(X , Y+PatternHeight);
end;
glEnd();
glPopAttrib();
glColor4f(1.0,1.0,1.0,1.0);
end;
[/pascal]