node.js event listener refused to unregister

Here after a simple event registering function.

  • when socket is not null, I register 3 event listeners
  • when socket is NULL I remove them.

Registration work perfectly, but I fail to unregister from event. I obviously check that I enter in the unregistration part with a console.log, but nothing happen. RemoveListener function is gently ignored :(

My 3 event functions have static names, what's wrong ?

Thank you.

    DevAdapter.prototype.HookEventHandler = function(socket, gpsd) {
    count = 0;

    var EventHandlerQueue = function (status, job){
        message=util.format ("#-%d Queue Status=%s DevId=%s Command=%s JobReq=%d Retry=%d\n", count++, status, job.devId, job.command, job.request, job.retry);
        socket.write (message);
    };  

    // Events successful process by tracker adapter
    var EventHandlerAccept = function (device, data){
        message=util.format ("#-%d Action Imei:[%s] Name:[%s] Cmd:[%s] Lat:%d Lon:%d Speed=%d\n", count++, device.imei, device.name, data.cmd, data.lat, data.lon, data.speed);
        socket.write (message);
    };

     // Events on action refused by tracker adapter
    var EventHandlerError = function(status, info, adapter, client){
        message=util.format ("#-%d Notice Info=%s Data=%s Adapter=%s Client=%s\n", count++, status, info, adapter, client );       
        socket.write (message);
    };

    // socket closed let's clear event
    if (socket === null) {
        gpsd.Debug(7, "Remove Telnet gpsd event listener [%s]", gpsd.uuid);
        gpsd.event.removeListener("queue" ,EventHandlerQueue);  
        gpsd.event.removeListener("accept",EventHandlerAccept); 
        gpsd.event.removeListener("error" ,EventHandlerError);  
    } else {
        // Events from queued jobs
        message=util.format ("> Hook On [Listening for gpsd [queue|acept|error] events\n");
        socket.write (message);

        gpsd.event.on("queue" ,EventHandlerQueue);  
        gpsd.event.on("accept",EventHandlerAccept); 
        gpsd.event.on("notice",EventHandlerError);
    }
};