Loop infinito com setInterval

Faço o debug no chrome, e vejo que mesmo com a variável contador igual a zero, o método contagem fica em loop infinito.

To usando o backbone.js para montar as views.

[code]

        initialize : function() {
            this.contagem();
        }, 
        
        contagem : function(){ 
        if (contador > 0){
            $('#tempo').html(contador); 
            $('#barra-interna').css('width', contador * 10);    
            contador = contador - 1;
            intervalID = setInterval(this.contagem, 1000);

     }
        else {
            window.clearInterval(intervalID);
            $('#tempo-container').hide();
	        $('#link').css('display', 'block');
            intervalID = null;
        }
    },    
 [/code]


  O código inteiro da view:

  [code]
  define(function(require) {

var chat = require('core/chat');
var Backbone = require('backbone');
var $ = require('jquery');
var agentOfferTemplate = require('hbs!templates/agent-offer');
var contador = 20;
var intervalID;

AgentOfferView = Backbone.View.extend({


    template : agentOfferTemplate,
     
    
    initialize : function() {
        this.contagem();
    }, 
       
    events : {
            'click  .ok'  : 'acceptOffer'
        },    
            
    render : function() {
            this.$el.append(this.template(this.model.toJSON()));
            return this;
        },
                
    contagem : function(){ 
        if (contador > 0){
            $('#tempo').html(contador); 
            $('#barra-interna').css('width', contador * 10);    
            contador = contador - 1;
            intervalID = setInterval(this.contagem, 1000);

        }
        else {
            window.clearInterval(intervalID);
            $('#tempo-container').hide();
	        $('#link').css('display', 'block');
            intervalID = null;
        }
    },    
        

    acceptOffer : function(){
        chat.acceptOffer(this.model.get('offerId'), this.model.get('workgroup'));
        this.remove();
    }  
    
     

});

return AgentOfferView;

});

 [/code]