| Outcome | No. | Date | Tournament | Surface | Partner | Opponents in the final | Score in the final |
| Runner-up | 1. | 29 April 1996 | Seoul, South Korea | Hard | Kent Kinnear | Rick Leach Jonathan Stark | 4–6, 4–6 |
| Winner | 1. | 3 February 1997 | Shanghai, China | Carpet | Max Mirnyi | Tomas Nydahl Stefano Pescosolido | 7–6, 6–7, 7–5 |
| Winner | 2. | 27 April 1998 | Orlando, Florida, US | Clay | Grant Stafford | Michael Tebbutt Mikael Tillström | 4–6, 6–4, 7–5 |
| Winner | 3. | 11 May 1998 | Coral Springs, Florida, US | Clay | Grant Stafford | Mark Merklein Vince Spadea | 7–5, 6–4 |
| Winner | 4. | 27 July 1998 | Washington, D.C., USA | Hard | Grant Stafford | Wayne Ferreira Patrick Galbraith | 6–3, 7–5 |
| Winner | 5. | 21 September 1998 | Bournemouth, United Kingdom | Clay | Neil Broad | Wayne Arthurs Alberto Berasategui | 7–6, 6–3 |
| Runner-up | 2. | 12 October 1998 | Basel, Switzerland | Hard (i) | Piet Norval | Olivier Delaître Fabrice Santoro | 3–6, 6–7 |
| Runner-up | 3. | 11 January 1999 | Doha, Qatar | Hard | Piet Norval | Alex O'Brien Jared Palmer | 3–6, 4–6 |
| Runner-up | 4. | 18 October 1999 | Vienna, Austria | Hard (i) | Piet Norval | David Prinosil Sandon Stolle | 3–6, 4–6 |
| Winner | 6. | 25 October 1999 | Lyon, France | Carpet | Piet Norval | Wayne Ferreira Sandon Stolle | 4–6, 7–6(7–5), 7–6(7–4) |
| Winner | 7. | 15 November 1999 | Stockholm, Sweden | Hard (i) | Piet Norval | Jan-Michael Gambill Scott Humphries | 7–5, 6–3 |
| Winner | 8. | 28 August 2000 | Long Island, New York, US | Hard | Jonathan Stark | Jan-Michael Gambill Scott Humphries | 6–4, 6–4 |
| Winner | 9. | 9 October 2000 | Hong Kong | Hard | Wayne Black | Dominik Hrbatý David Prinosil | 6–1, 6–2 |
| Winner | 10. | 13 November 2000 | St. Petersburg, Russia | Hard (i) | Daniel Nestor | Thomas Shimada Myles Wakefield | 7–6(7–5), 7–5 |
| Winner | 11. | 19 February 2001 | Copenhagen, Denmark | Hard (i) | Wayne Black | Jiří Novák David Rikl | 6–3, 6–3 |
| Winner | 12. | 27 August 2001 | Long Island, New York, US | Hard | Jonathan Stark | Leoš Friedl Radek Štěpánek | 6–1, 6–4 |
| Winner | 13. | 10 September 2001 | US Open, New York City | Hard | Wayne Black | Donald Johnson Jared Palmer | 7–6(11–9), 2–6, 6–3 |
| Winner | 14. | 7 January 2002 | Adelaide, Australia | Hard | Wayne Black | Bob Bryan Mike Bryan | 7–5, 6–2 |
| Winner | 15. | 4 March 2002 | San Jose, California, US | Hard (i) | Wayne Black | John-Laffnie de Jager Robbie Koenig | 6–3, 4–6, [10–5] |
| Runner-up | 5. | 13 May 2002 | Rome, Italy | Clay | Wayne Black | Martin Damm Cyril Suk | 5–7, 5–7 |
| Winner | 16. | 17 June 2002 | Queen's Club, London, England | Grass | Wayne Black | Mahesh Bhupathi Max Mirnyi | 7–6(7–5), 3–6, 6–3 |
| Winner | 17. | 19 August 2002 | Washington, D.C., USA | Hard | Wayne Black | Bob Bryan Mike Bryan | 7–6(7–4), 4–6, 6–3 |
| Winner | 18. | 14 October 2002 | Lyon, France | Carpet | Wayne Black | Mark Knowles Daniel Nestor | 6–4, 3–6, 7–6(7–3) |
| Winner | 19. | 28 October 2002 | Stockholm, Sweden | Hard (i) | Wayne Black | Wayne Arthurs Paul Hanley | 6–4, 2–6, 7–6(7–4) |
| Runner-up | 6. | 3 March 2003 | Dubai, United Arab Emirates | Hard | Wayne Black | Leander Paes David Rikl | 3–6, 0–6 |
| Winner | 20. | 5 May 2003 | Munich, Germany | Clay | Wayne Black | Joshua Eagle Jared Palmer | 6–3, 7–5 |
| Runner-up | 7. | 21 July 2003 | Stuttgart, Germany | Clay | Yevgeny Kafelnikov | Tomáš Cibulec Pavel Vízner | 6–3, 3–6, 4–6 |
| Runner-up | 8. | 6 October 2003 | Moscow, Russia | Carpet | Wayne Black | Mahesh Bhupathi Max Mirnyi | 3–6, 5–7 |
| Runner-up | 9. | 20 October 2003 | Madrid, Spain | Hard (i) | Wayne Black | Mahesh Bhupathi Max Mirnyi | 2–6, 6–2, 3–6 |
| Runner-up | 10. | 22 March 2004 | Indian Wells, California, US | Hard | Wayne Black | Sébastien Grosjean Arnaud Clément | 3–6, 6–4, 5–7 |
| Winner | 21. | 5 April 2004 | Key Biscayne, Florida, US | Hard | Wayne Black | Jonas Björkman Todd Woodbridge | 6–2, 7–6(14–12) |
| Winner | 22. | 17 May 2004 | Hamburg, Germany | Clay | Wayne Black | Bob Bryan Mike Bryan | 6–1, 6–2 |
| Runner-up | 11. | 26 July 2004 | Indianapolis, Indiana, US | Hard | Wayne Black | Jordan Kerr Jim Thomas | 7–6(9–7), 6–7(3–7), 3–6 |
| Runner-up | 12. | 8 November 2004 | Paris, France | Carpet | Wayne Black | Jonas Björkman Todd Woodbridge | 3–6, 4–6 |
| Runner-up | 13. | 21 November 2004 | Tennis Masters Cup, Houston, Texas, US | Hard | Wayne Black | Bob Bryan Mike Bryan | 6–4, 5–7, 4–6, 2–6 |
| Winner | 23. | 31 January 2005 | Australian Open, Melbourne | Hard | Wayne Black | Bob Bryan Mike Bryan | 6–4, 6–4 |
| Runner-up | 14. | 4 April 2005 | Key Biscayne, Florida, US | Hard | Wayne Black | Jonas Björkman Max Mirnyi | 1–6, 2–6 |
| Runner-up | 15. | 8 August 2005 | Washington, D.C., USA | Hard | Wayne Black | Bob Bryan Mike Bryan | 4–6, 2–6 |
| Winner | 24. | 15 August 2005 | Montreal, Canada | Hard | Wayne Black | Jonathan Erlich Andy Ram | 7–6(7–2), 6–4 |
| Runner-up | 16. | 22 August 2005 | Cincinnati, Ohio, US | Hard | Wayne Black | Jonas Björkman Max Mirnyi | 4–6, 7–5, 2–6 |
| Runner-up | 17. | 9 January 2006 | Adelaide, Australia | Hard | Paul Hanley | Jonathan Erlich Andy Ram | 6–7(4–7), 6–7(10–12) |
| Winner | 25. | 27 February 2006 | Rotterdam, Netherlands | Hard (i) | Paul Hanley | Jonathan Erlich Andy Ram | 7–6(7–4), 7–6(7–2) |
| Winner | 26. | 6 March 2006 | Dubai, United Arab Emirates | Hard | Paul Hanley | Mark Knowles Daniel Nestor | 1–6, 6–2, [10–1] |
| Winner | 27. | 22 May 2006 | Hamburg, Germany | Clay | Paul Hanley | Mark Knowles Daniel Nestor | 4–6, 7–6(7–5), [10–4] |
| Winner | 28. | 19 June 2006 | Queen's Club, London, England | Grass | Paul Hanley | Jonas Björkman Max Mirnyi | 6–4, 7–6(7–5) |
| Runner-up | 18. | 7 August 2006 | Washington, D.C., USA | Hard | Paul Hanley | Bob Bryan Mike Bryan | 3–6, 7–5, [3–10] |
| Runner-up | 19. | 14 August 2006 | Toronto, Canada | Hard | Paul Hanley | Bob Bryan Mike Bryan | 5–7, 1–6 |
| Winner | 29. | 16 October 2006 | Stockholm, Sweden | Hard (i) | Paul Hanley | Olivier Rochus Kristof Vliegen | 7–6(7–2), 6–4 |
| Winner | 30. | 15 January 2007 | Sydney, Australia | Hard | Paul Hanley | Mark Knowles Daniel Nestor | 6–4, 6–7(3–7), [10–6] |
| Runner-up | 20. | 12 August 2007 | Montréal, Canada | Hard | Paul Hanley | Mahesh Bhupati Pavel Vízner | 4–6, 4–6 |
| Runner-up | 21. | 21 April 2008 | Estoril, Portugal | Clay | Jamie Murray | Jeff Coetzee Wesley Moodie | 2–6, 6–4, [8–10] |
| Winner | 31. | 16 June 2008 | Nottingham, United Kingdom | Grass | Bruno Soares | Jeff Coetzee Jamie Murray | 6–2, 7–6(7–5) |
| Runner-up | 22. | 5 July 2008 | Wimbledon, London | Grass | Jonas Björkman | Daniel Nestor Nenad Zimonjić | 6–7(12–14), 7–6(7–3), 3–6, 3–6 |
| Runner-up | 23. | 17 August 2008 | Washington, D.C., USA | Hard | Bruno Soares | Marc Gicquel Robert Lindstedt | 6–7(3–7), 3–6 |
| Winner | 32. | 12 October 2008 | Stockholm, Sweden | Hard (i) | Jonas Björkman | Johan Brunström Michael Ryderstedt | 6–1, 6–3 |
| Winner | 33. | 2 November 2008 | Paris, France | Hard (i) | Jonas Björkman | Jeff Coetzee Wesley Moodie | 6–2, 6–2 |
| Runner-up | 24. | 29 August 2009 | New Haven, USA | Hard | Bruno Soares | Julian Knowle Jürgen Melzer | 4–6, 6–7(3–7) |
| Winner | 34. | 25 October 2009 | Stockholm, Sweden | Hard (i) | Bruno Soares | Simon Aspelin Paul Hanley | 6–4, 7–6(7–4) |