| Outcome | No. | Date | Tournament | Surface | Partner | Opponents in the final | Score in the final |
| Winner | 1. | 7 February 2000 | Marseille | Hard | Johan Landsberg | Juan Ignacio Carrasco Jairo Velasco, Jr. | 7–6(7–2), 6–4 |
| Runner-up | 1. | 15 July 2001 | Båstad | Clay | Andrew Kratzmann | Karsten Braasch Jens Knippschild | 6–7(3–7), 6–4, 6–7(5–7) |
| Runner-up | 2. | 29 July 2001 | Kitzbühel | Clay | Andrew Kratzmann | Àlex Corretja Luis Lobo | 3–6, 6–4, 3–6 |
| Runner-up | 3. | 24 February 2002 | Buenos Aires | Clay | Andrew Kratzmann | Gastón Etlis Martín Rodríguez | 6–3, 3–6, [4–10] |
| Runner-up | 4. | 14 April 2002 | Estoril | Clay | Andrew Kratzmann | Karsten Braasch Andrei Olhovskiy | 3–6, 3–6 |
| Winner | 2. | 19 May 2003 | St. Pölten | Clay | Massimo Bertolini | Sargis Sargsian Nenad Zimonjić | 6–4, 6–7(8–10), 6–3 |
| Winner | 3. | 7 July 2003 | Båstad | Clay | Massimo Bertolini | Lucas Arnold Mariano Hood | 6–7(3–7), 6–0, 6–4 |
| Runner-up | 5. | 14 September 2003 | Bucharest | Clay | Jeff Coetzee | Karsten Braasch Sargis Sargsian | 6–7(7–9), 2–6 |
| Runner-up | 6. | 11 July 2004 | Båstad | Clay | Todd Perry | Mahesh Bhupathi Jonas Björkman | 6–4, 6–7(2–7), 6–7(6–8) |
| Runner-up | 7. | 17 July 2004 | Stuttgart | Clay | Todd Perry | Jiří Novák Radek Štěpánek | 2–6, 4–6 |
| Runner-up | 8. | 9 January 2005 | Adelaide | Hard | Todd Perry | Xavier Malisse Olivier Rochus | 6–7(5–7), 4–6 |
| Runner-up | 9. | 17 January 2005 | Auckland | Hard | Todd Perry | Yves Allegro Michael Kohlmann | 4–6, 6–7(4–7) |
| Winner | 4. | 31 January 2005 | Delray Beach | Hard | Todd Perry | Jordan Kerr Jim Thomas | 6–3, 6–3 |
| Winner | 5. | 14 February 2005 | Memphis | Hard (i) | Todd Perry | Bob Bryan Mike Bryan | 6–4, 6–4 |
| Runner-up | 10. | 20 June 2005 | Nottingham | Grass | Todd Perry | Jonathan Erlich Andy Ram | 6–4, 3–6, 5–7 |
| Runner-up | 11. | 25 July 2005 | Indianapolis | Hard | Todd Perry | Paul Hanley Graydon Oliver | 2–6, 1–3 ret. |
| Runner-up | 12. | 10 October 2005 | Tokyo | Hard | Todd Perry | Satoshi Iwabuchi Takao Suzuki | 4–5(3–7), 4–5(13–15) |
| Runner-up | 13. | 14 January 2006 | Auckland | Hard | Todd Perry | Andrei Pavel Rogier Wassen | 2–6, 7–5, [4–10] |
| Winner | 6. | 23 October 2006 | St. Petersburg | Carpet | Todd Perry | Julian Knowle Jürgen Melzer | 6–1, 7–6(7–3) |
| Runner-up | 14. | 14 January 2007 | Auckland | Hard | Chris Haggard | Jeff Coetzee Rogier Wassen | 7–6(11–9), 3–6, [2–10] |
| Winner | 7. | 26 May 2007 | Pörtschach | Clay | Julian Knowle | Leoš Friedl David Škoch | 7–6(8–6), 5–7, [10–5] |
| Winner | 8. | 17 June 2007 | Halle | Grass | Julian Knowle | Fabrice Santoro Nenad Zimonjić | 6–4, 7–6(7–5) |
| Winner | 9. | 15 July 2007 | Båstad | Clay | Julian Knowle | Martin García Sebastián Prieto | 6–2, 6–4 |
| Winner | 10. | 7 September 2007 | U.S. Open | Hard | Julian Knowle | Lukáš Dlouhý Pavel Vízner | 7–5, 6–4 |
| Runner-up | 15. | 17 November 2007 | Tennis Masters Cup, Shanghai | Hard (i) | Julian Knowle | Mark Knowles Daniel Nestor | 2–6, 3–6 |
| Runner-up | 16. | 16 August 2008 | Summer Olympics, Beijing | Hard | Thomas Johansson | Roger Federer Stanislas Wawrinka | 4–6, 3–6, 7–6(7–4), 3–6 |
| Runner-up | 17. | 11 April 2009 | Casablanca | Clay | Paul Hanley | Łukasz Kubot Oliver Marach | 6–7(4–7), 6–3, [6–10] |
| Runner-up | 18. | 17 May 2009 | Madrid | Clay | Wesley Moodie | Daniel Nestor Nenad Zimonjić | 4–6, 4–6 |
| Winner | 11. | 26 July 2009 | Hamburg | Clay | Paul Hanley | Marcelo Melo Filip Polášek | 6–3, 6–3 |
| Runner-up | 19. | 25 October 2009 | Stockholm | Hard (i) | Paul Hanley | Bruno Soares Kevin Ullyett | 4–6, 6–7(4–7) |
| Runner-up | 20. | 14 February 2010 | Rotterdam | Hard (i) | Paul Hanley | Daniel Nestor Nenad Zimonjić | 4–6, 6–4, [7–10] |
| Winner | 12. | 27 February 2010 | Dubai | Hard | Paul Hanley | Lukáš Dlouhý Leander Paes | 6–2, 6–3 |
| Runner-up | 21. | 17 July 2011 | Båstad | Clay | Andreas Siljeström | Robert Lindstedt Horia Tecău | 3–6, 3–6 |
(W) Won tournament; reached (F) final, (SF) semifinal, (QF) quarterfinal; (#R) rounds 4, 3, 2, 1; competed at a (RR) round-robin stage; reached a (Q#) qualification round; (A) absent; played in a (Z#) Davis/Fed Cup Zonal Group (with number indication) or (PO) play-off; won a (G) gold, (F-S) silver or (SF-B) bronze Olympic medal; a (NMS) downgraded Masters Series/1000 tournament; or (NH) tournament not held.
To avoid confusion and double counting, these charts are updated either at the conclusion of a tournament, or when the player's participation in the tournament has ended.