Ricardo, I commented out "use strict" in zoom.pm (line 31) and get: Software error: Undefined subroutine &Net::Z3950::ZOOM::yaz_log_mask_str called at /usr/local/lib/perl/5.8.8/ZOOM.pm line 1092. BEGIN failed--compilation aborted at /usr/local/lib/perl/5.8.8/ZOOM.pm line 1116. Compilation failed in require at /usr/share/koha/lib/C4/Context.pm line 59. BEGIN failed--compilation aborted at /usr/share/koha/lib/C4/Context.pm line 59. Compilation failed in require at /usr/share/koha/lib/C4/Auth.pm line 29. BEGIN failed--compilation aborted at /usr/share/koha/lib/C4/Auth.pm line 29. Compilation failed in require at /usr/share/koha/opac/cgi-bin/opac/opac-main.pl line 22. BEGIN failed--compilation aborted at /usr/share/koha/opac/cgi-bin/opac/opac-main.pl line 22. So I comment that last section out and I'm once again good to go: #package ZOOM::Log; 1091 1092 #sub mask_str { my($a) = @_; Net::Z3950::ZOOM::yaz_log_mask_str($a); } 1093 #sub module_level { my($a) = @_; Net::Z3950::ZOOM::yaz_log_module_level($a); } 1094 #sub init { my($a, $b, $c) = @_; 1095 # Net::Z3950::ZOOM::yaz_log_init($a, $b, $c) } 1096 #sub init_file { my($a) = @_; Net::Z3950::ZOOM::yaz_log_init_file($a) } 1097 #sub init_level { my($a) = @_; Net::Z3950::ZOOM::yaz_log_init_level($a) } 1098 #sub init_prefix { my($a) = @_; Net::Z3950::ZOOM::yaz_log_init_prefix($a) } 1099 #sub time_format { my($a) = @_; Net::Z3950::ZOOM::yaz_log_time_format($a) } 1100 #sub init_max_size { my($a) = @_; Net::Z3950::ZOOM::yaz_log_init_max_size($a) } 1101 1102 #sub log { 1103 # my($level, @message) = @_; 1104 1105 # if ($level !~ /^(0x)?\d+$/) { 1106 # Assuming its log-level name, we look it up. 1107 # my $num = module_level($level); 1108 ## ZOOM::_oops(ZOOM::Error::LOGLEVEL, $level) 1109 # if $num == 0; 1110 # $level = $num; 1111 # } 1112 1113 # Net::Z3950::ZOOM::yaz_log($level, join("", @message)); 1114 #} 1115 1116 #BEGIN { ZOOM::Log::mask_str("zoom_check"); } 1117 #1; Mike