Hey guys.  Here's my problem:
I have a game class that maintains a HUD overlay that has a bunch of elements, including header and footer background sprites.  Everything was working fine until I added a 1024x128 footer sprite.  Now two of my text labels will not render, despite the fact that they DO exist in my Group and self.elements array.  Is there something I'm missing?  When I take out the footerHUDImage line, all of the labels render correctly and everything works fine.  When I add the footerHUDImage, two of the labels (the first two) no longer render and the third only sometimes renders.  HELP PLEASE!  Here is the code:
class AoWHUD (object):
def __init__(self, screen, delegate, dataSource):
    self.delegate = delegate
    self.dataSource = dataSource
    self.elements = []
    headerHudImage = KJRImage("HUDBackground.png")
    self.elements.append(headerHudImage)
    headerHudImage.userInteractionEnabled = True
    footerHUDImage = KJRImage("ControlsBackground.png")
    self.elements.append(footerHUDImage)
    footerHUDImage.rect.bottom = screen.get_rect().height
    footerHUDImage.userInteractionEnabled = True
    lumberMessage = "Lumber: " + str(self.dataSource.lumber)
    lumberLabel = KJRLabel(lumberMessage, size = 48, color = (240, 200, 10))
    lumberLabel.rect.topleft = (_kSpacingMultiple * 0, 0)
    self.elements.append(lumberLabel)
    stoneMessage = "Stone: " + str(self.dataSource.stone)
    stoneLabel = KJRLabel(stoneMessage, size = 48, color = (240, 200, 10))
    stoneLabel.rect.topleft = (_kSpacingMultiple * 1, 0)
    self.elements.append(stoneLabel)
    metalMessage = "Metal: " + str(self.dataSource.metal)
    metalLabel = KJRLabel(metalMessage, size = 48, color = (240, 200, 10))
    metalLabel.rect.topleft = (_kSpacingMultiple * 2, 0)
    self.elements.append(metalLabel)
    foodMessage = "Food: " + str(len(self.dataSource.units)) + "/" + str(self.dataSource.food)
    foodLabel = KJRLabel(foodMessage, size = 48, color = (240, 200, 10))
    foodLabel.rect.topleft = (_kSpacingMultiple * 3, 0)
    self.elements.append(foodLabel)
    self.selectionSprites = {32 : pygame.image.load("Selected32.png").convert_alpha(), 64 : pygame.image.load("Selected64.png")}
    self._sprites_ = pygame.sprite.Group()
    for e in self.elements:
        self._sprites_.add(e)
    print self.elements
def draw(self, screen):
    if self.dataSource.resourcesChanged:
        lumberMessage = "Lumber: " + str(self.dataSource.lumber)
        stoneMessage = "Stone: " + str(self.dataSource.stone)
        metalMessage = "Metal: " + str(self.dataSource.metal)
        foodMessage = "Food: " + str(len(self.dataSource.units)) + "/" + str(self.dataSource.food)
        self.elements[2].setText(lumberMessage)
        self.elements[2].rect.topleft = (_kSpacingMultiple * 0, 0)
        self.elements[3].setText(stoneMessage)
        self.elements[3].rect.topleft = (_kSpacingMultiple * 1, 0)
        self.elements[4].setText(metalMessage)
        self.elements[4].rect.topleft = (_kSpacingMultiple * 2, 0)
        self.elements[5].setText(foodMessage)
        self.elements[5].rect.topleft = (_kSpacingMultiple * 3, 0)
        self.dataSource.resourcesChanged = False
    self._sprites_.draw(screen)
    if self.delegate.selectedUnit:
        theSelectionSprite = self.selectionSprites[self.delegate.selectedUnit.rect.width]
        screen.blit(theSelectionSprite, self.delegate.selectedUnit.rect)