     /// - Parameter item: Item to populate.
     open func populate(for item: TMBarItemable) {
         let showBadge = item.badgeValue != nil
-        badge.value = item.badgeValue
+        if showBadge {
+            badge.value = item.badgeValue
+        }
         updateBadgeVisibility(showBadge, animated: true)
-        badgeContainer.isHidden = badge.isHidden
     }
     
     /// Update the button for a new selection state.

        } else {
            guard animated else {
                badge.isHidden = true
                return
            }
            

        if isVisible {
            guard animated else {
                badge.isHidden = false
                badgeContainer.isHidden = false
                return
            }
            
            badge.alpha = 0.0
            badge.transform = CGAffineTransform(scaleX: 0.0, y: 0.0)
            badge.isHidden = false
            badgeContainer.isHidden = false

            UIView.animate(withDuration: 0.2) {
                self.badge.transform = .identity
