My router does not use UPnP... but NAT-PMP (NAT Port Mapping Protocol). It's very simple and easy to implement, and basically use a script to handle port mapping. Under 6.5 it was more reliable than UPnP (though not 100%) at mapping the port 113 in time using the on logon event that it would successfully complete the process before mIRC received the actual request.
Since UPnP support was added, it's now usually fails to map on the first attempt. And I have no clue as to why. NAT-PMP is a very simple, very brief protocol. Packets very in size from just two bytes for obtaining the external IP to 12-16 bytes for mapping an actual port.
Oh and btw... Everytime I click to disable UPnP in the options window, I get a warning that UPnP isn't supported.