public Rectangle getRectAroundSpriteAtPoint(final Point aPoint)
    {       
        markInfectNonTransparents(aPoint.x, aPoint.y);
        
        int minX = aPoint.x;
        int minY = aPoint.y;
        int maxX = aPoint.x;
        int maxY = aPoint.y;

        for (int y=0; y<_imgH; ++y)
        {
            for (int x=0; x<_imgW; ++x)
            {
                if (pixelIsMarked(x, y))
                {
                    if (x < minX)
                        minX = x;
                    if (y < minY)
                        minY = y;
                    if (x > maxX)
                        maxX = x;
                    if (y > maxY)
                        maxY = y;

                    markPixel(x, y, false);
                }
            }
        }       

        Rectangle r = new Rectangle(minX, minY, maxX - minX, maxY - minY);

        if (r.width > 0)
            r.width += 1;
        if (r.height > 0)
            r.height += 1;

        return r;
    }