diff --git a/src/warden-client/doc/CHANGELOG b/src/warden-client/doc/CHANGELOG
index 145d6902dd21e13e0720c2906591ff48dcbe3bd8..1de1f5599e6f4290c994042665ca1d4477120c23 100644
--- a/src/warden-client/doc/CHANGELOG
+++ b/src/warden-client/doc/CHANGELOG
@@ -1,9 +1,13 @@
-2012-00-00 v1.2.0 stable version and bugfix release of warden-client-1.1.0
+2012-03-30 v1.2.0 stable version and bugfix release of warden-client-1.1.0
 --------------------------------------------------------------------------
 - Fixed SSL certificate/key access privileges security issue
 - Fixed client crash after multiple events download
+- Fixed install.sh crash when warden client installation dictionary doesn't exist
+- Fixed configuration error in permission access to etc directory in update.sh
+- Fixed bug in backup process in update.sh
 - Fixed several small bugs/issues
 
+
 2012-02-06 v1.1.0 stable version and bugfix release of warden-client-1.0.0
 --------------------------------------------------------------------------
 - Fixed bug when receiving of events
@@ -16,6 +20,7 @@
 - Added update script -> update.sh
 - Fixed several small bugs/issues
 
+
 2011-11-16 v1.0.0 stable version
 --------------------------------
 - Initial package of warden client
diff --git a/src/warden-client/doc/README b/src/warden-client/doc/README
index 894c7e683d79c887f94386a08723483edac77f93..777d20399be552d3a2528e33529bc357d18d928f 100644
--- a/src/warden-client/doc/README
+++ b/src/warden-client/doc/README
@@ -1,5 +1,5 @@
 +------------------------------+
-| README - Warden Client 1.1.0 |
+| README - Warden Client 1.2.0 |
 +------------------------------+
 
 Content
@@ -30,7 +30,7 @@ A. Overall Information
  
  2. Version
   
-    1.1.0 (2012-02-06)
+    1.2.0 (2012-03-30)
     
  3. Package structure
  
@@ -129,11 +129,11 @@ D. Installation (First installation of the Warden client package)
 
  1. Check SHA1 checksum of corresponding Warden client package archive
 
-    $ sha1sum -c warden-client-1.1.0.tar.gz.sig
+    $ sha1sum -c warden-client-1.2.0.tar.gz.sig
 
  2. Untar it
 
-    $ tar xzvf warden-client-1.1.0.tar.gz
+    $ tar xzvf warden-client-1.2.0.tar.gz
 
  3. Run install.sh 
   
@@ -189,11 +189,11 @@ E. Update (Update of previously installed the Warden client package)
 
  1. Check SHA1 checksum of corresponding the Warden client package archive
 
-    $ sha1sum -c warden-client-1.1.0.tar.gz.sig
+    $ sha1sum -c warden-client-1.2.0.tar.gz.sig
 
  2. Untar it
 
-    $ tar xzvf warden-client-1.1.0.tar.gz
+    $ tar xzvf warden-client-1.2.0.tar.gz
 
  3. Run update.sh 
   
diff --git a/src/warden-client/doc/README.cesnet b/src/warden-client/doc/README.cesnet
index 4151f3b2d760849a41cb53d4ce3592fbec8615c7..5a6f61e581bad627f6464521fe8ac23f486c9b50 100644
--- a/src/warden-client/doc/README.cesnet
+++ b/src/warden-client/doc/README.cesnet
@@ -1,5 +1,5 @@
 +-------------------------------------+
-| README.cesnet - Warden Client 1.1.0 |
+| README.cesnet - Warden Client 1.2.0 |
 |				      |
 | CESNET Specifics                    |
 +-------------------------------------+
@@ -26,7 +26,7 @@ A. Overall Information
 
  2. Version
 
-    1.1.0 (2012-02-06)
+    1.2.0 (2012-03-30)
 
 --------------------------------------------------------------------------------
 B. Registration
diff --git a/src/warden-client/doc/example-receiver.pl.txt b/src/warden-client/doc/example-receiver.pl.txt
index 89dc2261fac2ae2b2735d14b3e00ec71a263b6da..2f4f92624c46ff90899f8501f93eb9840b8ee6f6 100644
--- a/src/warden-client/doc/example-receiver.pl.txt
+++ b/src/warden-client/doc/example-receiver.pl.txt
@@ -33,7 +33,7 @@
 use strict;
 
 #------------------------------------------------------------------------------
-# Warden 1.1.0. Client, Receiver, Example
+# Warden 1.2.0. Client, Receiver, Example
 #
 # Simple use of warden-client receiver functionality to download new events
 # from # Warden server. This code illustrates how to integrate warden-client
diff --git a/src/warden-client/doc/example-sender.pl.txt b/src/warden-client/doc/example-sender.pl.txt
index 1a2efb7b67992126e3f117ccd5635b972e5939cd..9e1089a380dac5461f96e905070e3c984e543055 100644
--- a/src/warden-client/doc/example-sender.pl.txt
+++ b/src/warden-client/doc/example-sender.pl.txt
@@ -34,7 +34,7 @@ use strict;
 use DateTime;
 
 #-------------------------------------------------------------------------------
-# Warden 1.1.0. Client, Sender, Example 
+# Warden 1.2.0. Client, Sender, Example 
 #
 # Sample script using warden-client sending functionality. This example is not
 # intended to be a standalone script. It only shows how to use warden-client
diff --git a/src/warden-client/etc/package_version b/src/warden-client/etc/package_version
index bb011d5987d805b75cfd45215a9e78b44b2c8620..c7673b58f3ac7b70d71e2ff412fd13800fdf6dee 100644
--- a/src/warden-client/etc/package_version
+++ b/src/warden-client/etc/package_version
@@ -1 +1 @@
-warden-client-1.2.0
+warden-client-1.3.0
diff --git a/src/warden-client/etc/warden-client.conf b/src/warden-client/etc/warden-client.conf
index 3eedc988855e6939db708ad64b3af4d81d4d4928..af9e8decf38211a6707de79c39c0f73afafeba4e 100644
--- a/src/warden-client/etc/warden-client.conf
+++ b/src/warden-client/etc/warden-client.conf
@@ -3,21 +3,22 @@
 #
 
 #-------------------------------------------------------------------------------
-# URI -	URI address of Warden server
+# URI - URI address of Warden server
 #-------------------------------------------------------------------------------
 $URI = "https://warden-dev.cesnet.cz:443/Warden";
 
 #-------------------------------------------------------------------------------
 # SSL_KEY_FILE - path to client SSL certificate key file
 #-------------------------------------------------------------------------------
-$SSL_KEY_FILE = "/opt/warden-client/etc/warden-dev.cesnet.cz.key";
+$SSL_KEY_FILE = "/opt/warden-client/etc/barny.ics.muni.cz.key";
 
 #-------------------------------------------------------------------------------
 # SSL_CERT_FILE - path to client SSL certificate file
 #-------------------------------------------------------------------------------
-$SSL_CERT_FILE = "/opt/warden-client/etc/warden-dev.cesnet.cz.pem";
+$SSL_CERT_FILE = "/opt/warden-client/etc/barny.ics.muni.cz.pem";
 
 #-------------------------------------------------------------------------------
 # SSL_CA_FILE - path to CA certificate file
 #-------------------------------------------------------------------------------
 $SSL_CA_FILE = "/etc/ssl/certs/tcs-ca-bundle.pem";
+
diff --git a/src/warden-client/lib/WardenClientReceive.pm b/src/warden-client/lib/WardenClientReceive.pm
index c8f7d456f692a3894e6f822d26d6bbf094252344..4b37851e00847297f04b6a4950e8b680cb9cbfea 100755
--- a/src/warden-client/lib/WardenClientReceive.pm
+++ b/src/warden-client/lib/WardenClientReceive.pm
@@ -4,7 +4,7 @@
 #
 # Copyright (C) 2011-2012 Cesnet z.s.p.o
 # Author(s): 	Tomas PLESNIK 	<plesnik@ics.muni.cz>
-#		Jan SOUKAL	<soukal@ics.muni.cz>
+#		          Jan SOUKAL	<soukal@ics.muni.cz>
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
@@ -36,11 +36,10 @@ package WardenClientReceive;
 use strict;
 use SOAP::Lite;
 use IO::Socket::SSL qw(debug1);
-#use SOAP::Transport::TCP;
 use SOAP::Transport::HTTP;
 use FindBin;
 
-our $VERSION = "1.1";
+our $VERSION = "1.3"; #first iteration after 'port to Apache'
 
 #-------------------------------------------------------------------------------
 # errMsg - print error message and die
@@ -55,71 +54,26 @@ sub errMsg
 #-------------------------------------------------------------------------------
 # c2s - connect to server, send request and receive response
 #-------------------------------------------------------------------------------
-#sub c2s 
-#{
-#  my $uri		= shift;
-#  my $ssl_key_file	= shift;
-#  my $ssl_cert_file	= shift;
-#  my $ssl_ca_file	= shift;
-#  my $method		= shift;
-#  my $data		= shift;
-#
-#  my $client;
-#  my ($server, $port, $service) = $uri =~ /https:\/\/(.+)\:(\d+)\/(.+)/;
-#  if (!($client = SOAP::Transport::TCP::Client->new(
-#    PeerAddr            => $server,
-#    PeerPort            => $port,
-#    Proto               => 'tcp',
-#    SSL_use_cert        => 1,
-#    SSL_verify_mode     => 0x02,
-#    SSL_key_file        => $ssl_key_file,
-#    SSL_cert_file       => $ssl_cert_file,
-#    SSL_ca_file         => $ssl_ca_file,
-#  ))) {errMsg("Sorry, unable to create socket: " . &SOAP::Transport::TCP::Client::errstr)}
-#
-#  # setting of URI and serialize SOAP envelope and data object
-#  my $soap = SOAP::Lite->uri($uri);
-#  my $envelope;
-#  if (!defined $data) {
-#    $envelope = $soap->serializer->envelope(method => $method);
-#  } else {
-#    $envelope = $soap->serializer->envelope(method => $method, $data);
-#  }
-#
-#  # setting of TCP URI and send serialized SOAP envelope and data
-#  my $tcp_uri = "tcp://$server:$port/$service";
-#  my $result = $client->send_receive(envelope => $envelope, endpoint => $tcp_uri);
-#
-#  # check server response
-#  if (!defined $result) {
-#    errMsg("Error: server returned empty response." . "\n" . "Problem with used SSL ceritificates or Warden server at $server:$port is down.");
-#  } else {
-#    # deserialized response from server -> create SOAP envelope and data object
-#    my $response = $soap->deserializer->deserialize($result);
-#    # check SOAP fault status
-#    $response->fault ? errMsg("Server sent error message:: " . $response->faultstring) : return $response;
-#  }
-#}
-
 sub c2s 
 {
-  my $uri		= shift;
+  my $uri		        = shift;
   my $ssl_key_file	= shift;
   my $ssl_cert_file	= shift;
-  my $ssl_ca_file	= shift;
-  my $method		= shift;
-  my $data		= shift;
+  my $ssl_ca_file	  = shift;
+  my $method		    = shift;
+  my $data		      = shift;
 
   my $client;
   my ($server, $port, $service) = $uri =~ /https:\/\/(.+)\:(\d+)\/(.+)/;
-  if (!($client = SOAP::Transport::HTTP::Client->new(
-))) {errMsg("Sorry, unable to create socket: " . &SOAP::Transport::HTTP::Client::errstr)}
-  $client->ssl_opts( 	verify_hostname     => 1,
-        		SSL_use_cert        => 1,
-        		SSL_verify_mode     => 0x02,
-        		SSL_key_file        => $ssl_key_file,
-        		SSL_cert_file       => $ssl_cert_file,
-        		SSL_ca_file         => $ssl_ca_file);
+  if (!($client = SOAP::Transport::HTTP::Client->new())) {
+    errMsg("Sorry, unable to create socket: " . &SOAP::Transport::HTTP::Client::errstr)
+  }
+  $client->ssl_opts(verify_hostname     => 1,
+        		        SSL_use_cert        => 1,
+        		        SSL_verify_mode     => 0x02,
+        		        SSL_key_file        => $ssl_key_file,
+        		        SSL_cert_file       => $ssl_cert_file,
+        		        SSL_ca_file         => $ssl_ca_file);
 
   # setting of URI and serialize SOAP envelope and data object
   my $soap     = SOAP::Lite->uri($service)->proxy($uri);
@@ -131,8 +85,8 @@ sub c2s
   }
 
   # setting of TCP URI and send serialized SOAP envelope and data
-  my $tcp_uri = "https://$server:$port/$service";
-  my $result = $client->send_receive(envelope => $envelope, endpoint => $tcp_uri);
+  my $server_uri = "https://$server:$port/$service";
+  my $result = $client->send_receive(envelope => $envelope, endpoint => $server_uri);
 
   # check server response
   if (!defined $result) {
@@ -191,61 +145,58 @@ sub getNewEvents
   # get new events from warden server DB based on gathered last ID 
 
   # create SOAP data obejct
-  my $request_data = SOAP::Data->name(request => \SOAP::Data->value(
-    SOAP::Data->name(REQUESTED_TYPE => $requested_type),
-    SOAP::Data->name(LAST_ID => $last_id)
-  ));
+  my $request_data = SOAP::Data->name(
+    request => \SOAP::Data->value(
+      SOAP::Data->name(REQUESTED_TYPE => $requested_type),
+      SOAP::Data->name(LAST_ID        => $last_id)
+    )
+  );
+  
+  # call server method getNewEvents 
   my $response = c2s($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, "getNewEvents", $request_data);
 
-  # match getNewEvents functions response
-  $response->match('/Envelope/Body/getNewEventsResponse/');
+  # parse returned SOAP data object
   my ($id, $hostname, $service, $detected, $type, $source_type, $source, $target_proto, $target_port, $attack_scale, $note, $priority, $timeout);
   my @events;
-
-  # parse returned SOAP data object
-  my $i = 1;
-  my $response_data = $response->valueof("[$i]");
-  while (defined $response_data) {
+  my @response_list = $response->valueof('/Envelope/Body/getNewEventsResponse/event/');
+  while (scalar @response_list) {
+    my $response_data = shift(@response_list);
     my @event;
 
     # parse items of one event
-    $id			= $response_data->{'ID'};
-    $hostname		= $response_data->{'HOSTNAME'};
-    $service		= $response_data->{'SERVICE'};
-    $detected 		= $response_data->{'DETECTED'};
-    $type		= $response_data->{'TYPE'};
-    $source_type	= $response_data->{'SOURCE_TYPE'};
-    $source		= $response_data->{'SOURCE'};
-    $target_proto	= $response_data->{'TARGET_PROTO'};
-    $target_port	= $response_data->{'TARGET_PORT'};
-    $attack_scale	= $response_data->{'ATTACK_SCALE'};
-    $note		= $response_data->{'NOTE'};
-    $priority		= $response_data->{'PRIORITY'};
-    $timeout		= $response_data->{'TIMEOUT'};
+    $id			       = $response_data->{'ID'};
+    $hostname		   = $response_data->{'HOSTNAME'};
+    $service		   = $response_data->{'SERVICE'};
+    $detected 	   = $response_data->{'DETECTED'};
+    $type		       = $response_data->{'TYPE'};
+    $source_type   = $response_data->{'SOURCE_TYPE'};
+    $source		     = $response_data->{'SOURCE'};
+    $target_proto	 = $response_data->{'TARGET_PROTO'};
+    $target_port	 = $response_data->{'TARGET_PORT'};
+    $attack_scale	 = $response_data->{'ATTACK_SCALE'};
+    $note		       = $response_data->{'NOTE'};
+    $priority		   = $response_data->{'PRIORITY'};
+    $timeout		   = $response_data->{'TIMEOUT'};
 
     # push new event from warden server into @events which is returned
-    @event = ("$id", "$hostname", "$service", "$detected", "$type", "$source_type", "$source", "$target_proto", "$target_port", "$attack_scale", "$note", "$priority", "$timeout");
+    @event = ($id, $hostname, $service, $detected, $type, $source_type, $source, $target_proto, $target_port, $attack_scale, $note, $priority, $timeout);
     push (@events, \@event);
 
     # set maximum received ID from current batch
     if ($id > $last_id) {
 	    $last_id = $id;
     }
-
-    # go to the next received event
-    $i++;
-    $response_data = $response->valueof("[$i]");
-  }
+  } #end of while loop
 
   # write last return ID
-  if (defined $last_id) {		# must be defined for first check ID
+  if (defined $last_id) { # must be defined for first check ID
     open(ID, "> $id_file") || die ("Cannot open ID file $id_file: $!");
     print ID $last_id;
     close ID;
   }
 
-  # return event array of arrays 
   return @events;
+
 } # End of getNewEvents
 
 1;
diff --git a/src/warden-client/lib/WardenClientSend.pm b/src/warden-client/lib/WardenClientSend.pm
index 75d12479f23fa06c3a4b1c086d7f0084c78c04bc..0ed2df4abe9bacd8caf35e6cd931e7c8236d4f32 100755
--- a/src/warden-client/lib/WardenClientSend.pm
+++ b/src/warden-client/lib/WardenClientSend.pm
@@ -4,7 +4,7 @@
 #
 # Copyright (C) 2011-2012 Cesnet z.s.p.o
 # Author(s):	Tomas PLESNIK	<plesnik@ics.muni.cz>
-#		Jan SOUKAL	<soukal@ics.muni.cz>
+#		          Jan SOUKAL <soukal@ics.muni.cz>
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
@@ -35,11 +35,11 @@ package WardenClientSend;
 
 use strict;
 use SOAP::Lite;
-#use SOAP::Lite 'trace', 'debug';
 use IO::Socket::SSL qw(debug1);
-#use SOAP::Transport::TCP;
 use SOAP::Transport::HTTP;
-our $VERSION = "1.1";
+
+our $VERSION = "1.3"; #first iteration after 'port to Apache'
+
 
 #-------------------------------------------------------------------------------
 # errMsg - print error message and die
@@ -56,31 +56,35 @@ sub errMsg
 #-------------------------------------------------------------------------------
 sub c2s 
 {
-  my $uri		= shift;
+  my $uri		        = shift;
   my $ssl_key_file	= shift;
   my $ssl_cert_file	= shift;
-  my $ssl_ca_file	= shift;
-  my $method		= shift;
-  my $data		= shift;
+  my $ssl_ca_file	  = shift;
+  my $method		    = shift;
+  my $data		      = shift;
 
-  my $client;
   my ($server, $port, $service) = $uri =~ /https:\/\/(.+)\:(\d+)\/(.+)/;
-  if (!($client = SOAP::Transport::HTTP::Client->new(
-))) {errMsg("Sorry, unable to create socket: " . &SOAP::Transport::HTTP::Client::errstr)}
-  $client->ssl_opts( 	verify_hostname     => 1,
-        		SSL_use_cert        => 1,
-        		SSL_verify_mode     => 0x02,
-        		SSL_key_file        => $ssl_key_file,
-        		SSL_cert_file       => $ssl_cert_file,
-        		SSL_ca_file         => $ssl_ca_file);
+  
+  my $client;
+  if (!($client = SOAP::Transport::HTTP::Client->new())) {
+    errMsg("Sorry, unable to create socket: " . &SOAP::Transport::HTTP::Client::errstr)
+  }
+  $client->ssl_opts(verify_hostname     => 1,
+        		        SSL_use_cert        => 1,
+        		        SSL_verify_mode     => 0x02,
+        		        SSL_key_file        => $ssl_key_file,
+        		        SSL_cert_file       => $ssl_cert_file,
+        		        SSL_ca_file         => $ssl_ca_file);
+
 
   # setting of URI and serialize SOAP envelope and data object
   my $soap     = SOAP::Lite->uri($service)->proxy($uri);
   my $envelope = $soap->serializer->envelope(method => $method, $data);
-  
-# setting of TCP URI and send serialized SOAP envelope and data
-  my $tcp_uri = "https://$server:$port/$service";
-  my $result = $client->send_receive(envelope => $envelope, endpoint => $tcp_uri);
+
+  # setting of TCP URI and send serialized SOAP envelope and data
+  my $server_uri = "https://$server:$port/$service";
+
+  my $result = $client->send_receive(envelope => $envelope, endpoint => $server_uri);
 
   # check server response
   if (!defined $result) {
@@ -111,33 +115,35 @@ sub saveNewEvent
   my ($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file) = WardenClientConf::loadConf($conf_file);
 
   # prepare variables of event 
-  my @event = @{$event_ref};
-  my $service		= $event[0];
-  my $detected		= $event[1];
-  my $type		= $event[2];
-  my $source_type	= $event[3];
-  my $source		= $event[4];
+  my @event         = @{$event_ref};
+  my $service		    = $event[0];
+  my $detected		  = $event[1];
+  my $type		      = $event[2];
+  my $source_type	  = $event[3];
+  my $source		    = $event[4];
   my $target_proto	= $event[5];
-  my $target_port	= $event[6];
+  my $target_port	  = $event[6];
   my $attack_scale	= $event[7];
-  my $note		= $event[8];
-  my $priority		= $event[9];
-  my $timeout		= $event[10];
+  my $note		      = $event[8];
+  my $priority		  = $event[9];
+  my $timeout		    = $event[10];
 
   # create SOAP data object
-  my $event = SOAP::Data->name(event => \SOAP::Data->value(
-    SOAP::Data->name(SERVICE		=> $service),
-    SOAP::Data->name(DETECTED		=> $detected),
-    SOAP::Data->name(TYPE		=> $type),
-    SOAP::Data->name(SOURCE_TYPE    	=> $source_type),
-    SOAP::Data->name(SOURCE		=> $source),
-    SOAP::Data->name(TARGET_PROTO	=> $target_proto),
-    SOAP::Data->name(TARGET_PORT	=> $target_port),
-    SOAP::Data->name(ATTACK_SCALE	=> $attack_scale),
-    SOAP::Data->name(NOTE		=> $note),
-    SOAP::Data->name(PRIORITY       	=> $priority),
-    SOAP::Data->name(TIMEOUT		=> $timeout)
-   ));
+  my $event = SOAP::Data->name(
+    event => \SOAP::Data->value(
+      SOAP::Data->name(SERVICE		  => $service),
+      SOAP::Data->name(DETECTED		  => $detected),
+      SOAP::Data->name(TYPE	    	  => $type),
+      SOAP::Data->name(SOURCE_TYPE  => $source_type),
+      SOAP::Data->name(SOURCE		    => $source),
+      SOAP::Data->name(TARGET_PROTO	=> $target_proto),
+      SOAP::Data->name(TARGET_PORT	=> $target_port),
+      SOAP::Data->name(ATTACK_SCALE	=> $attack_scale),
+      SOAP::Data->name(NOTE		      => $note),
+      SOAP::Data->name(PRIORITY     => $priority),
+      SOAP::Data->name(TIMEOUT		  => $timeout)
+    )
+  );
 
   my $result = c2s($uri, $ssl_key_file, $ssl_cert_file, $ssl_ca_file, "saveNewEvent", $event);
   $result ? return 1 : return 0;