diff -urNp havp-0.86/havp/default.h.in havp-0.86-kas/havp/default.h.in
--- havp-0.86/havp/default.h.in	2007-06-18 15:24:03.000000000 +0300
+++ havp-0.86-kas/havp/default.h.in	2007-06-18 15:20:28.000000000 +0300
@@ -98,6 +98,7 @@
 #define ERROR_DNS	"dns.html"
 #define VIRUS_FOUND	"virus.html"
 #define ERROR_SCANNER	"scanner.html"
+#define UPDATE_SCANNER	"scanner_update.html"
 #define ERROR_DOWN	"down.html"
 #define ERROR_INVALID	"invalid.html"
 #define ERROR_REQUEST	"request.html"
diff -urNp havp-0.86/havp/proxyhandler.cpp havp-0.86-kas/havp/proxyhandler.cpp
--- havp-0.86/havp/proxyhandler.cpp	2007-06-18 15:24:03.000000000 +0300
+++ havp-0.86-kas/havp/proxyhandler.cpp	2007-06-18 15:21:02.000000000 +0300
@@ -1506,7 +1506,15 @@ bool ProxyHandler::ProxyMessage( int Com
         case 3: //Scanner timeout
             LogFile::AccessMessage("%s %s %d %s %d+%lld SCANERROR %s\n", ToBrowser.GetIP().c_str(), ToBrowser.GetRequestType().c_str(), ToServer.GetResponse(), ToBrowser.GetCompleteRequest().c_str(), TransferredHeader, TransferredBody, Answer.c_str());
             message = Answer;
-            filename = ERROR_SCANNER;
+
+            if (message[5] == 'U' && message[6] == 'P')
+            {
+                filename = UPDATE_SCANNER;
+            }
+            else
+            {
+                filename = ERROR_SCANNER;
+            }
             break;
 
         default:
diff -urNp havp-0.86/havp/scannerhandler.cpp havp-0.86-kas/havp/scannerhandler.cpp
--- havp-0.86/havp/scannerhandler.cpp	2007-03-26 13:51:59.000000000 +0200
+++ havp-0.86-kas/havp/scannerhandler.cpp	2007-06-18 15:24:26.000000000 +0300
@@ -107,6 +107,8 @@ bool ScannerHandler::InitScanners()
         return false;
     }
 
+    return true;
+
     for ( unsigned int i = 0; i < VirusScanner.size(); i++ )
     {
         string Name = VirusScanner[i]->ScannerName;
diff -urNp havp-0.86/havp/scanners/kasperskyscanner.cpp havp-0.86-kas/havp/scanners/kasperskyscanner.cpp
--- havp-0.86/havp/scanners/kasperskyscanner.cpp	2007-06-18 15:24:03.000000000 +0300
+++ havp-0.86-kas/havp/scanners/kasperskyscanner.cpp	2007-06-18 15:21:08.000000000 +0300
@@ -46,7 +46,7 @@ string KasperskyScanner::Scan( const cha
                 LastError = time(NULL);
             }
 
-            ScannerAnswer = "2Could not connect to scanner socket";
+            ScannerAnswer = "2UPCould not connect to scanner socket";
             return ScannerAnswer;
         }
 
@@ -55,7 +55,7 @@ string KasperskyScanner::Scan( const cha
         {
             AVESocket.Close();
 
-            ScannerAnswer = "2Could not read from scanner socket";
+            ScannerAnswer = "2UPCould not read from scanner socket";
             return ScannerAnswer;
         }
 
@@ -95,7 +95,7 @@ string KasperskyScanner::Scan( const cha
                 LastError = time(NULL);
             }
 
-            ScannerAnswer = "2Could not connect to scanner socket";
+            ScannerAnswer = "2UPCould not connect to scanner socket";
             return ScannerAnswer;
         }
 
@@ -104,7 +104,7 @@ string KasperskyScanner::Scan( const cha
         {
             AVESocket.Close();
 
-            ScannerAnswer = "2Could not read from scanner socket";
+            ScannerAnswer = "2UPCould not read from scanner socket";
             return ScannerAnswer;
         }
 
@@ -141,7 +141,7 @@ string KasperskyScanner::Scan( const cha
             AVESocket.Close();
             Connected = false;
 
-            ScannerAnswer = "2Could not read from scanner socket";
+            ScannerAnswer = "2UPCould not read from scanner socket";
             return ScannerAnswer;
         }
 
