Looks like you might have encountered this scenario:

(1) TZ parameter was changed on the unix box
(2) Database was restarted
(3) Listener is running on non-default port (not 1521) and local_listener is not set within the init or pfile for automatic listener registration and the listener was NOT restarted after the database restart.

If the listener was not restarted after the OS parameter change and if the listener uses static service registration then connections through the listener might not see the OS parameter change. Oracle's PMON process reads the environment variable during database startup and also registers the service name (....and uses the OS parameter during registration) if dynamic registration is enabled.

Fix in your case might be as simple as restarting the listener......

Good luck......

http://www.dbaxchange.com