An Improved Three-Weight Message-Passing Algorithm