In a transactional system, an {\em atomic commitment} protocol ensures that for any transaction, all {\em Data Manager} processes agree on the same outcome {\em (commit} or {\em abort)}. A {\em non-blocking atomic commitment} protocol enables an outcome to be decided at every correct process despite the failure of others. In this paper we apply, for the first time, the fundamental result of Chandra and Toueg on solving the abstract consensus problem, to non-blocking atomic commitment. More precisely, we present a non-blocking atomic commitment protocol in an asynchronous system augmented with an unreliable failure detector that can make an infinity of false failure suspicions. If no process is suspected to have failed, then our protocol is similar to a {\em three phase commit} protocol. In the case where processes are suspected, our protocol does not require any additionnal termination protocol: failure scenarios are handled within our regular protocol and are thus much simpler to manage.