There have been some reported problems with Mercurial mis-merges using kdiff3, it's not kdiff3's fault really, just different command lines. People just need to make sure their Mercurial is configured properly for merges.
The argument order of the merge tool that you point Mercurial at with the ~/.hgrc '[ui] hgmerge=' option or the HGMERGE environment variable needs to follow the hgmerge argument order. The kdiff3 argument order is not the same. The default hgmerge script will run kdiff3 properly if it's in your PATH, but hgmerge also will do automatic merges before it runs the GUI merge tool. See http://www.selenic.com/mercurial/wiki/index.cgi/MergeProgram for details about Mercurial merge options. -kto