diff --git a/src/warden-server/lib/Warden.pm b/src/warden-server/lib/Warden.pm
index 35f928e6ebdfc8f2ebbffffbd8ff16fc748c2e17..e0a1c7c07a07978f7ec11dcbdb567a0644aac56b 100755
--- a/src/warden-server/lib/Warden.pm
+++ b/src/warden-server/lib/Warden.pm
@@ -56,18 +56,27 @@ our $DBH = DBI->connect("DBI:mysql:database=$DB_NAME;host=$DB_HOST", $DB_USER, $
 ################################################################################
 
 #-------------------------------------------------------------------------------
-# write2log - writing message to syslog
+# sendMsg - sent message to syslog (SYS::Syslog) and to client (SOAP::Fault)
+#
+# Args:	(SYSLOG severity, SYSLOG msg, SOAP msg)
 #-------------------------------------------------------------------------------
-sub write2log
+sub sendMsg
 {
-  my $priority	= shift;
-  my $msg 	= shift;
-  my $filename	= File::Basename::basename($0);
+  my $severity		= shift;
+  my $syslog_msg 	= shift;
+  my $soap_msg		= shift;
+  my $filename		= File::Basename::basename($0);
+
+  if (defined $severity && defined $syslog_msg) {
+    Sys::Syslog::openlog($filename, "cons,pid", $FACILITY);
+    Sys::Syslog::syslog("$severity", "$syslog_msg");
+    Sys::Syslog::closelog();
+  }
 
-  Sys::Syslog::openlog($filename, "cons,pid", $FACILITY);
-  Sys::Syslog::syslog("$priority", "$msg");
-  Sys::Syslog::closelog();
-} # End of write2log
+  if (defined $soap_msg) {
+    die SOAP::Fault->faultstring($soap_msg);
+  }
+} # End of sendMsg
 
 
 #-------------------------------------------------------------------------------
@@ -115,13 +124,16 @@ sub authorizeClient
                           ORDER BY SUBSTRING_INDEX(ip_net_client,'/', -1) DESC;");
   }
 
-  if (!defined $sth) { die("Cannot prepare authorization statement in $function_name: $DBH->errstr\n")}
+  if (!defined $sth) {
+    sendMsg("err",
+           "Cannot prepare authorization statement in $function_name: $DBH->errstr",
+	   "Internal 'prepare' server error")
+  }
   $sth->execute($service_type, $client_type);
 
   my ($an, $cidr, $receive_own, $cidr_list);
   my $correct_ip_source = 0;
   my %ret;
-
   while(($an, $cidr, $receive_own)  = $sth->fetchrow()) {
     my $cidr_list = Net::CIDR::Lite-> new -> add($cidr);
 
@@ -137,15 +149,17 @@ sub authorizeClient
 
   # check if client is registered
   if ($sth->rows == 0) {
-    write2log ("err", "Unauthorized access to '$function_name' from: '$ip'; CN(AN): $alt_names; used service: '$service_type' - client is not registered");
-    die("Access denied - client is not registered at warden server!");
+    sendMsg("err",
+           "Unauthorized access to function '$function_name' from: '$ip'; CN(AN): $alt_names; used service: '$service_type' - client is not registered",
+           "Access denied - client is not registered at warden server");
     return undef;
   }
 
   # check if client has IP from registered CIDR
   if (!$correct_ip_source) {
-    write2log ("err", "Unauthorized access to '$function_name' from: '$ip'; CN(AN): $alt_names; used service: '$service_type' - access from bad subnet: Registered subnet '" . $ret{'cidr'} . "'");
-    die("Access denied - access from unauthorized subnet!");
+    sendMsg ("err",
+            "Unauthorized access to function '$function_name' from: '$ip'; CN(AN): $alt_names; used service: '$service_type' - access from bad subnet: Registered subnet '$ret{'cidr'}'",
+            "Access denied - access from unauthorized subnet");
     return undef;
   }
 
@@ -191,16 +205,44 @@ sub saveNewEvent
 
   my %client = authorizeClient($alt_names, $ip, $service, $client_type, $function_name);
   if(defined %client) {
-
-    # if validator is configured, check validity of event attributes - TYPE
-    if (!exists $VALID_STRINGS{'type'} or grep $type eq $_, @{$VALID_STRINGS{'type'}}) {
+    if (!(exists $VALID_STRINGS{'type'} && grep $type eq $_, @{$VALID_STRINGS{'type'}})) {
+      sendMsg("err",
+             "Unknown event type - client from: '$ip'; CN(AN): $alt_names; used type: '$type'",
+             "Unknown event type '$type'");
+    } elsif (!(exists $VALID_STRINGS{'source_type'} && grep $source_type eq $_, @{$VALID_STRINGS{'source_type'}})) {
+      sendMsg("err",
+             "Unknown source type - client from: '$ip'; CN(AN): $alt_names; used source_type: '$source_type'",
+             "Unknown source type '$source_type'");
+    # http://my.safaribooksonline.com/book/programming/regular-expressions/9780596802837/4dot-validation-and-formatting/id2983571
+    } elsif ($detected !~ /^((?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])T(2[0-3]|[0-1][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]+)?(Z|[+-](?:2[0-3]|[0-1][0-9]):[0-5][0-9])?/) {
+      sendMsg("err",
+             "Unknown detected time format - client from: '$ip'; CN(AN): $alt_names; used detected: '$detected'",
+             "Unknown detected time format '$detected'");
+    } elsif ($target_port !~ /^\d+\z/ && defined $target_port) {
+      sendMsg("err",
+             "Unknown target port - client from: '$ip'; CN(AN): $alt_names; used target_port: '$target_port'",
+             "Unknown target port '$target_port'");
+    } elsif ($attack_scale !~ /^\d+\z/ && defined $attack_scale) {
+      sendMsg("err",
+             "Unknown attack scale - client from: '$ip'; CN(AN): $alt_names; used attack_scale: '$attack_scale'",
+             "Unknown attack scale '$attack_scale'");
+    } elsif ($priority !~ /^\d+\z/ && defined $priority) {
+      sendMsg("err",
+             "Unknown priority - client from: '$ip'; CN(AN): $alt_names; used priority: '$priority'",
+             "Unknown priority '$priority'");
+    } elsif ($timeout !~ /^\d+\z/ && defined $timeout) {
+      sendMsg("err",
+             "Unknown timeout - client from: '$ip'; CN(AN): $alt_names; used timeout: '$timeout'",
+             "Unknown timeout '$timeout'");
+    } else {
       $sth=$DBH->prepare("INSERT INTO events VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);");
-      if (!defined $sth) { die("Cannot do insert statement in $function_name: $DBH->errstr\n") }
+      if (!defined $sth) {
+        sendMsg("err",
+	       "Cannot prepare statement in function '$function_name': $DBH->errstr",
+	       "Internal 'prepare' server error");
+      }
       $sth->execute(undef, $client{'dns'}, $service, $detected, $received, $type, $source_type, $source, $target_proto, $target_port, $attack_scale, $note, $priority, $timeout, $valid);
       return 1;
-    } else {
-      write2log ("err", "Unknown event type - client from: '$ip'; CN(AN): $alt_names; used type: '$type'");
-      die("Unknown event type - client sent event with unknown type '$type'!");
     }
   }
 } # END of saveNewEvent
@@ -241,23 +283,39 @@ sub getNewEvents
     if ($client{'receive_own'} eq 't') {
       if ($requested_type eq '_any_') {
         $sth = $DBH->prepare("SELECT * FROM events WHERE type != 'test' AND id > ? AND valid = 't' ORDER BY id ASC LIMIT ?;");
-        if (!defined $sth) {die("Cannot prepare ROE-ANY statement in $function_name: $DBH->errstr\n")}
+        if (!defined $sth) {
+	  sendMsg("err",
+	         "Cannot prepare ROE-ANY statement in function '$function_name': $DBH->errstr",
+		 "Internal 'prepare' server error");
+        }
         $sth->execute($last_id, $used_limit);
       } else {
         $sth = $DBH->prepare("SELECT * FROM events WHERE type != 'test' AND id > ? AND type = ? AND valid = 't' ORDER BY id ASC LIMIT ?;");
-        if (!defined $sth) {die("Cannot prepare ROE statement in $function_name: $DBH->errstr\n")}
+        if (!defined $sth) {
+	  sendMsg("err",
+	         "Cannot prepare ROE statement in function '$function_name': $DBH->errstr",
+		 "Internal 'prepare' server error");
+	}
 	$sth->execute($last_id, $requested_type, $used_limit);
       }
     } else {
       if ($requested_type eq '_any_') {
         $sth = $DBH->prepare("SELECT * FROM events WHERE type != 'test' AND id > ? AND valid = 't' AND hostname NOT LIKE ? ORDER BY id ASC LIMIT ?;");
-        if (!defined $sth) {die("Cannot prepare ANY statement in $function_name: $DBH->errstr\n")}
+        if (!defined $sth) {
+	  sendMsg("err",
+	         "Cannot prepare ANY statement in function '$function_name': $DBH->errstr",
+		 "Internal 'prepare' server error");
+	}
         my ($domain) = $cn =~ /([^\.]+\.[^\.]+)$/;
         $domain = '\%' . $domain;
         $sth->execute($last_id, $domain, $used_limit);
       } else {
         $sth = $DBH->prepare("SELECT * FROM events WHERE type != 'test' AND id > ? AND type = ? AND valid = 't' AND hostname NOT LIKE ? ORDER BY id ASC LIMIT ?;");
-        if (!defined $sth) {die("Cannot prepare statement in $function_name: $DBH->errstr\n")}
+        if (!defined $sth) {
+	  sendMsg("err",
+	         "Cannot prepare statement in function '$function_name': $DBH->errstr\n",
+		 "Internal 'prepare' server error");
+	}
         my ($domain) = $cn =~ /([^\.]+\.[^\.]+)$/;
         $domain = '\%' . $domain;
         $sth->execute($last_id, $requested_type, $domain, $used_limit);
@@ -303,9 +361,13 @@ sub getNewEvents
     # log sent ID of events
     if (scalar @events != 0) {
       if (scalar @ids == 1) {
-        write2log("info", "Sent 1 event [#$ids[0]] to '$ip' (CN(AN): $alt_names) with client limit '$max_rcv_events_limit' events");
+        sendMsg("info",
+	       "Sent 1 event [#$ids[0]] to '$ip' (CN(AN): $alt_names) with client limit '$max_rcv_events_limit' events",
+	        undef);
       } else {
-        write2log("info", "Sent " . scalar @ids . " events [#$ids[0] - #$ids[-1]] to '$ip' (CN(AN): $alt_names) with client limit '$max_rcv_events_limit' events");
+        sendMsg("info",
+	       "Sent " . scalar @ids . " events [#$ids[0] - #$ids[-1]] to '$ip' (CN(AN): $alt_names) with client limit '$max_rcv_events_limit' events",
+	        undef);
       }
     }
     return @events;
@@ -322,7 +384,11 @@ sub getLastId
   my $function_name = 'getLastId';
 
   my $sth = $DBH->prepare("SELECT max(id) FROM events;");
-  if ( !defined $sth ) { die("Cannot prepare statement in '$function_name': $DBH->errstr\n") }
+  if ( !defined $sth ) {
+    sendMsg("err",
+           "Cannot prepare statement in function '$function_name': $DBH->errstr",
+	   "Internal 'prepare' server error");
+  }
   $sth->execute;
   my $result = $sth->fetchrow();
 
@@ -346,8 +412,9 @@ sub registerSender
   my $function_name = 'registerSender';
 
   if ($local_ip ne $ip) {
-    write2log ("err", "Unauthorized access to '$function_name' from: '$ip' ('$cn') - access allowed only from localhost");
-    die("Access denied - access allowed only from localhost!");
+    sendMsg("err",
+           "Unauthorized access to function '$function_name' from: '$ip' ('$cn') - access allowed only from localhost",
+           "Access denied - access allowed only from localhost");
   } else {
     # defined variables by method
     my $client_type 		= "s";
@@ -364,28 +431,39 @@ sub registerSender
 
     # check if sender has been already registered
     $sth = $DBH->prepare("SELECT registered FROM clients WHERE hostname = ? AND requestor = ? AND service = ? AND client_type = ? AND type = ? AND receive_own_events = ? AND description_tags = ? AND ip_net_client = ? LIMIT 1;");
-    if (!defined $sth) {die("Cannot prepare check statement in '$function_name': $DBH->errstr\n")}
+    if (!defined $sth) {
+      sendMsg("err",
+             "Cannot prepare statement in function '$function_name': $DBH->errstr",
+             "Internal 'prepare' server error");
+    }
     $sth->execute($hostname, $requestor, $service, $client_type, $type, $receive_own_events, $description_tags, $ip_net_client);
     my $result = $sth->fetchrow();
 
     # register new sender
     if (defined $result) {
-      write2log ("err", "Attempt to re-register the sender");
-      die("Error - sender has already been registered at '$result'");
+      sendMsg("err",
+             "Attempt to re-register the sender '$hostname', '$requestor', '$service', '$client_type', '$type', '$receive_own_events', '$description_tags', '$ip_net_client'",
+             "Sender has been already registered at '$result'");
     } else {
       $sth = $DBH->prepare("INSERT INTO clients VALUES (?,?,?,?,?,?,?,?,?,?);");
-      if (!defined $sth) {die("Cannot do statement in '$function_name': $DBH->errstr\n")}
+      if (!defined $sth) {
+        sendMsg("err",
+	       "Cannot prepare statement in function '$function_name': $DBH->errstr",
+	       "Internal 'prepare' server error");
+      }
       $sth->execute(undef, $hostname, $registered, $requestor, $service, $client_type, $type, $receive_own_events, $description_tags, $ip_net_client);
-      write2log("info", "New sender '$hostname' (service: '$service', cidr: '$ip_net_client') was registered");
+        sendMsg("info",
+	       "New sender '$hostname' (service: '$service', cidr: '$ip_net_client') was registered",
+	        undef);
       return 1;
     }
   }
 } # END of registerSender
 
 
-##-----------------------------------------------------------------------------
-## registerReceiver - register new receiver
-##-----------------------------------------------------------------------------
+#-----------------------------------------------------------------------------
+# registerReceiver - register new receiver
+#-----------------------------------------------------------------------------
 sub registerReceiver
 {
   my ($class, $data) = @_;
@@ -399,8 +477,9 @@ sub registerReceiver
   my $function_name = 'registerReceiver';
 
   if ($local_ip ne $ip) {
-    write2log ("err", "Unauthorized access to '$function_name' from: '$ip' ('$cn') - access allowed only from localhost");
-    die("Access denied - access allowed only from localhost!");
+    sendMsg("err",
+           "Unauthorized access to function '$function_name' from: '$ip' ('$cn') - access allowed only from localhost",
+           "Access denied - access allowed only from localhost");
   } else {
     # variables defined by method
     my $client_type		= "r";
@@ -417,19 +496,30 @@ sub registerReceiver
 
     # check if receiver has been already registered
     $sth = $DBH->prepare("SELECT registered FROM clients WHERE hostname = ? AND requestor = ? AND service = ? AND client_type = ? AND type = ? AND receive_own_events = ? AND description_tags = ? AND ip_net_client = ? LIMIT 1;");
-    if (!defined $sth) {die("Cannot prepare check statement in '$function_name': $DBH->errstr\n")}
+    if (!defined $sth) {
+      sendMsg("err",
+             "Cannot prepare statement in function '$function_name': $DBH->errstr",
+	     "Internal 'prepare' server error");
+    }
     $sth->execute($hostname, $requestor, $service, $client_type, $type, $receive_own_events, $description_tags, $ip_net_client);
     my $result = $sth->fetchrow();
 
     # register new receiver
     if (defined $result) {
-      write2log ("err", "Attempt to re-register the receiver");
-      die("Error - receiver has already been registered at '$result'");
+      sendMsg("err",
+             "Attempt to re-register the receiver '$hostname', '$requestor', '$service', '$client_type', '$type', '$receive_own_events', '$description_tags', '$ip_net_client'",
+             "Receiver has already been registered at '$result'");
     } else {
       $sth = $DBH->prepare("INSERT INTO clients VALUES (?,?,?,?,?,?,?,?,?,?);");
-      if (!defined($sth)) {die("Cannot do statement in '$function_name': $DBH->errstr\n")}
+      if (!defined($sth)) {
+        sendMsg("err",
+	       "Cannot prepare statement in function '$function_name': $DBH->errstr",
+	       "Internal 'prepare' server error");
+      }
       $sth->execute(undef, $hostname, $registered, $requestor, $service, $client_type, $type, $receive_own_events, $description_tags, $ip_net_client);
-      write2log("info", "New receiver '$hostname' (type: '$type', cidr: '$ip_net_client', receive_own_events: '$receive_own_events') was registered");
+      sendMsg("info",
+             "New receiver '$hostname' (type: '$type', cidr: '$ip_net_client', receive_own_events: '$receive_own_events') was registered",
+	      undef);
       return 1;
     }
   }
@@ -452,40 +542,60 @@ sub unregisterClient
   my $function_name = 'unregisterClient';
 
   if ($local_ip ne $ip) {
-    write2log ("err", "Unauthorized access to '$function_name' from: '$ip' ('$cn') - access allowed only from localhost");
-    die("Access denied - access allowed only from localhost!");
+    sendMsg("err",
+           "Unauthorized access to function '$function_name' from: '$ip' ('$cn') - access allowed only from localhost",
+           "Access denied - access allowed only from localhost");
   } else {
     # parse SOAP data oject
     my $client_id	= $data->{'CLIENT_ID'};
 
     # check if receiver has been already registered
     $sth = $DBH->prepare("SELECT client_id, hostname, service, client_type FROM clients WHERE client_id = ? LIMIT 1;");
-    if (!defined $sth) {die("Cannot prepare check statement in '$function_name': $DBH->errstr\n")}
+    if (!defined $sth) {
+      sendMsg("err",
+             "Cannot prepare statement in function '$function_name': $DBH->errstr",
+	     "Internal 'prepare' server error");
+    }
     $sth->execute($client_id);
     my ($id, $hostname, $service, $client_type) = $sth->fetchrow();
 
     # delete registered client
     if (!defined $id) {
-      write2log ("err", "Attempt to delete unregister client");
-      die("Error - client (#$client_id) is not registered");
+      sendMsg("err",
+             "Attempt to delete unregister client '$id', '$hostname', '$service', '$client_type'",
+             "Client (#$client_id) is not registered");
     } else {
       if ($client_type eq 's') {
         $sth = $DBH->prepare("DELETE FROM clients WHERE client_id = ?;");
-        if (!defined $sth) {die("Cannot do delete statement of sender in '$function_name': $DBH->errstr\n")}
+        if (!defined $sth) {
+          sendMsg("err",
+	         "Cannot prepare statement in function '$function_name': $DBH->errstr",
+		 "Internal 'prepare' server error");
+	}
         $sth->execute($client_id);
 
         $sth = $DBH->prepare("UPDATE events SET valid = 'f' where hostname = ? AND service = ?;");
-        if (!defined $sth) {die("Cannot do unvalidation statement in '$function_name': $DBH->errstr\n")}
+        if (!defined $sth) {
+          sendMsg("err",
+	         "Cannot prepare statement in function '$function_name': $DBH->errstr",
+		 "Internal 'prepare' server error");
+	}
 	$sth->execute($hostname, $service);
-
-        write2log("info", "Sender '$hostname' (client_id: '$client_id', service: '$service') was deleted and its data were invalidated" );
+        sendMsg("info",
+	       "Sender '$hostname' (client_id: '$client_id', service: '$service') was deleted and its data were invalidated",
+	       undef);
         return 1;
       } else {
         $sth = $DBH->prepare("DELETE FROM clients WHERE client_id = ?;");
-        if (!defined $sth) {die("Cannot do delete statement of receiver in '$function_name': $DBH->errstr\n")}
+        if (!defined $sth) {
+	  sendMsg("err",
+	         "Cannot prepare statement in function '$function_name': $DBH->errstr",
+		 "Internal 'prepare' server error");
+	}
 	$sth->execute($client_id);
-
-        write2log("info", "Receiver '$hostname' (client_id: '$client_id') was deleted" );
+        sendMsg("info",
+	       "Receiver '$hostname' (client_id: '$client_id') was deleted",
+	        undef);
         return 1;
       }
     }
@@ -508,13 +618,18 @@ sub getClients
   my $function_name = 'getClients';
 
   if ($local_ip ne $ip) {
-    write2log ("err", "Unauthorized access to '$function_name' from: '$ip' ('$cn') - access allowed only from localhost");
-    die("Access denied - access allowed only from localhost!");
+    sendMsg("err",
+           "Unauthorized access to function '$function_name' from: '$ip' ('$cn') - access allowed only from localhost",
+           "Access denied - access allowed only from localhost");
   } else {
     my (@clients, $client);
     my ($client_id, $hostname, $registered, $requestor, $service, $client_type, $type, $receive_own_events, $description_tags, $ip_net_client);
     my $sth = $DBH->prepare("SELECT * FROM clients ORDER BY client_id ASC;");
-    if (!defined $sth) { die("Cannot prepare statement in '$function_name': $DBH->errstr\n") }
+    if (!defined $sth) {
+      sendMsg("err",
+             "Cannot prepare statement in function '$function_name': $DBH->errstr",
+	     "Internal 'prepare' server error");
+    }
     $sth->execute;
 
     while ( my @result = $sth->fetchrow() ) {
@@ -544,7 +659,9 @@ sub getClients
       push(@clients, $client);
     }
     my $sum = scalar @clients;
-    write2log("info", "Sending information about '$sum' registered clients");
+    sendMsg("info",
+           "Sending information about '$sum' registered clients",
+	    undef);
     return @clients;
   }
 } # END of getClients
@@ -565,8 +682,9 @@ sub getStatus
   my $function_name = 'getStatus';
 
   if ($local_ip ne $ip) {
-    write2log ("err", "Unauthorized access to '$function_name' from: '$ip' ('$cn') - access allowed only from localhost");
-    die("Access denied - access allowed only from localhost!");
+    sendMsg("err",
+           "Unauthorized access to function '$function_name' from: '$ip' ('$cn') - access allowed only from localhost",
+           "Access denied - access allowed only from localhost");
   } else {
     my ($sth, @status);
 
@@ -587,35 +705,55 @@ sub getStatus
 
     # sum of records in table events
     $sth = $DBH->prepare("SELECT count(*) FROM events WHERE valid = 't';");
-    if (!defined $sth) { die("Cannot prepare statement in '$function_name': $DBH->errstr\n") }
+    if (!defined $sth) {
+      sendMsg("err",
+             "Cannot prepare statement in function '$function_name': $DBH->errstr",
+	     "Internal 'prepare' server error");
+    }
     $sth->execute;
     my $events_sum = $sth->fetchrow();
     if (!defined $events_sum) { $events_sum = "none" }
 
     # id of last record in table events
     $sth = $DBH->prepare("SELECT max(id) FROM events;");
-    if (!defined $sth) { die("Cannot prepare statement in '$function_name': $DBH->errstr\n") }
+    if (!defined $sth) {
+      sendMsg("err",
+             "Cannot prepare statement in function '$function_name': $DBH->errstr",
+	     "Internal 'prepare' server error");
+    }
     $sth->execute;
     my $events_last_id = $sth->fetchrow();
     if (!defined $events_last_id) { $events_last_id = "none" }
 
     # timestamp of first record in table events
     $sth = $DBH->prepare("SELECT received FROM events WHERE id = (SELECT min(id) FROM events);");
-    if (!defined $sth) { die("Cannot prepare statement in '$function_name': $DBH->errstr\n") }
+    if (!defined $sth) {
+      sendMsg("err",
+             "Cannot prepare statement in function '$function_name': $DBH->errstr",
+	     "Internal 'prepare' server error");
+    }
     $sth->execute;
     my $events_first_timestamp = $sth->fetchrow();
     if (!defined $events_first_timestamp) { $events_first_timestamp = "none" }
 
     # timestamp of last record in table events
     $sth = $DBH->prepare("SELECT received FROM events WHERE id = (SELECT max(id) FROM events);");
-    if (!defined $sth) { die("Cannot prepare statement in '$function_name': $DBH->errstr\n") }
+    if (!defined $sth) {
+      sendMsg("err",
+             "Cannot prepare statement in function '$function_name': $DBH->errstr",
+	     "Internal 'prepare' server error");
+    }
     $sth->execute;
     my $events_last_timestamp = $sth->fetchrow();
     if (!defined $events_last_timestamp) { $events_last_timestamp = "none" }
 
     # sum of records in table clients
     $sth = $DBH->prepare("SELECT count(*) FROM clients;");
-    if (!defined $sth) { die("Cannot prepare statement in '$function_name': $DBH->errstr\n") }
+    if (!defined $sth) {
+      sendMsg("err",
+             "Cannot prepare statement in function '$function_name': $DBH->errstr",
+	     "Internal 'prepare' server error");
+    }
     $sth->execute;
     my $clients_sum = $sth->fetchrow();
     if (!defined $clients_sum) { $clients_sum = "none" }
@@ -641,7 +779,11 @@ sub getStatus
     # statistics of senders
     if ($clients_sum != 0) {
       $sth = $DBH->prepare("SELECT client_id, hostname, service FROM clients WHERE client_type = 's' ORDER BY client_id ASC;");
-      if (!defined $sth) {die("Cannot prepare statement in '$function_name': $DBH->errstr\n")}
+      if (!defined $sth) {
+        sendMsg("err",
+	       "Cannot prepare statement in function '$function_name': $DBH->errstr",
+	       "Internal 'prepare' server error");
+      }
       $sth->execute;
       my ($client_id, $hostname, $service);
       my $client_status;
@@ -649,16 +791,26 @@ sub getStatus
         my $sth2;
         # sum of stored events
         $sth2 = $DBH->prepare("SELECT count(*) FROM events WHERE hostname = ? AND service = ?;");
-        if (!defined $sth2) {die("Cannot prepare statement in '$function_name': $DBH->errstr\n")}
+        if (!defined $sth2) {
+	  sendMsg("err",
+	         "Cannot prepare statement in function '$function_name': $DBH->errstr",
+		 "Internal 'prepare' server error");
+	}
         $sth2->execute($hostname, $service);
         my $count = $sth2->fetchrow();
         if (!defined $count) {$count = "none"}
+
         # timestamp of last stored event 
         $sth2 = $DBH->prepare("SELECT max(received) FROM events WHERE hostname = ? AND service = ?;");
-        if (!defined $sth2) {die("Cannot prepare statement in '$function_name': $DBH->errstr\n")}
+        if (!defined $sth2) {
+	  sendMsg("err",
+	         "Cannot prepare statement in function '$function_name': $DBH->errstr\n",
+		 "Internal 'prepare' server error");
+	}
         $sth2->execute($hostname, $service);
         my $timestamp = $sth2->fetchrow();
         if (!defined $timestamp) {$timestamp = "none"}
+
         # create SOAP data object
         $client_status = SOAP::Data->name(client_status => \SOAP::Data->value(
           SOAP::Data->name(CLIENT_ID	=> $client_id),
@@ -670,7 +822,9 @@ sub getStatus
 	push(@status, $client_status);
       }
     }
-    write2log("info", "Sent of warden server status info");
+    sendMsg("info",
+           "Sent warden server status info",
+	    undef);
     return @status;
   }
 } # END of getStatus