Strange edge around transparent PNGs

For my project I’m loading a series of PNGs with transparency. When they are drawn, an ugly border forms around the edges of the colored area. The end result looks like this:

The files I’m using don’t have this outline. Here’s a few of them:

These images are contained in their own class called Animation.

void Animation::Draw(){  
		glTranslatef(x-centX+xAdjust,y-centY+yAdjust, 0);  
		if (!facingLeft && !facingFront){  
			//formula to get the flipped image location: imageWidth-(imageWidth/2-centerOfUnflippedImage)*2  
			glTranslatef( body.getWidth()-(body.getWidth()/2-centX)*2 ,0,0);  
		body.draw(0, 0);	//draw the body  
		//and everything else  
		for (int i=0; i<heads.size(); i++) heads[i].Draw();  
		for (int i=0; i<arms.size(); i++) arms[i].Draw();  
		for (int i=0; i<legs.size(); i++) legs[i].Draw();  
		for (int i=0; i<tails.size(); i++) tails[i].Draw();  
		for (int i=0; i<wings.size(); i++) wings[i].Draw();  

The parts other than the body are their own class called Part. They’re drawn in a similar way.

Any idea why I’m getting these outlines? I’d love to get rid of them.