sorry for delayed answer, i have to sleep yesterday because i was tired from paid projects i have and was prone to mistakes.
did you mean:
bool CGUILabel::Process(unsigned int currentTime)
{
  // TODO Add the correct processing
  bool overFlows = (m_renderRect.Width() + 0.5f < m_textLayout.GetTextWidth()); // 0.5f to deal with floating point rounding issues
  bool renderSolid = (m_color == COLOR_DISABLED);
  bool scroll = false;

  if (overFlows && m_scrolling && !renderSolid)
    scroll = m_textLayout.UpdateScrollinfo(m_scrollInfo);

  return (scroll && overFlows && m_scrolling);
}
with this i get few more percents in long run average, but not problematic ones. i can proceed this way too if you meant it.