diff --git a/src/warden-client/sh/update.sh b/src/warden-client/sh/update.sh
new file mode 100755
index 0000000000000000000000000000000000000000..536d4676461ba83703b550545371f4a8006fb189
--- /dev/null
+++ b/src/warden-client/sh/update.sh
@@ -0,0 +1,351 @@
+#!/bin/bash
+#
+# update.sh
+#
+# Copyright (C) 2011 Cesnet z.s.p.o
+# Author(s): 	Tomas PLESNIK 	<plesnik@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
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in
+#    the documentation and/or other materials provided with the
+#    distribution.
+# 3. Neither the name of the Cesnet z.s.p.o nor the names of its
+#    contributors may be used to endorse or promote products derived from
+#     this software without specific prior written permission.
+#
+# This software is provided ``as is'', and any express or implied
+# warranties, including, but not limited to, the implied warranties of
+# merchantability and fitness for a particular purpose are disclaimed.
+# In no event shall the Cesnet z.s.p.o or contributors be liable for
+# any direct, indirect, incidental, special, exemplary, or consequential
+# damages (including, but not limited to, procurement of substitute
+# goods or services; loss of use, data, or profits; or business
+# interruption) however caused and on any theory of liability, whether
+# in contract, strict liability, or tort (including negligence or
+# otherwise) arising in any way out of the use of this software, even
+# if advised of the possibility of such damage.
+
+VERSION="1.0.0"
+
+#-------------------------------------------------------------------------------
+#				FUNCTIONS
+#-------------------------------------------------------------------------------
+usage()
+{
+  echo "Usage: `basename $0` [-d <directory>] [-hV]"
+  echo "-d <directory>            installation directory (default: /opt)"
+  echo "-h                        print this help"
+  echo "-V                        print script version number and exit"
+  echo
+  echo "Example: ./`basename $0` -d /opt"
+  echo
+  echo "Note: You must be root for running this script."
+  echo "      For more information about update process, see README file (section Update)."
+  echo
+  exit 0
+}
+
+
+version()
+{
+  echo "`basename ${0}` - current version is $VERSION"
+  exit 0
+}
+
+
+err()
+{
+  echo "FAILED!"
+  cat $err
+  rm -rf $err
+  rm -rf $backup_dir
+  echo
+  echo "Update FAILED!!!"
+  exit 1
+}
+
+
+err_clean()
+{
+  echo "FAILED!"
+  echo " -> Reverting changes of warden client package ... OK"
+  rm -rf "$client_path/*" > /dev/null 2>&1
+  cp -R "$backup_dir/*" $client_path
+  cat $err
+  rm -rf $err
+  rm -rf $backup_dir
+  echo
+  echo "Update FAILED!!!"
+  exit 1
+}
+
+
+os_chck()
+{
+  OS=`uname`
+  if [ "$OS" != "Linux" ]; then
+    echo "Sorry, unsupported operating system detected - \"$OS\"!"
+    exit 1
+  fi
+}
+
+
+shell_chck()
+{
+  SHELL=`echo $SHELL`
+  if [ "$SHELL" != "/bin/bash" ]; then
+    echo "Sorry, this script is usable in Bourne Again Shell (bash) only!"
+    exit 1
+  fi
+}
+
+
+root_chck()
+{
+  if [ $UID -ne 0 ]; then
+    echo "You must be root for running this script!"
+    exit 1
+  fi
+}
+
+
+params_chck()
+{
+  if [ -z $prefix ]; then
+    prefix=/opt
+    echo "Warning: parameter -d <directory> is not set - default installation directory is $prefix!"
+  fi
+}
+
+
+perl_chck()
+{
+  echo -n "Checking Perl interpreter ... "
+  which perl 1>/dev/null; ret_val=`echo $?`
+  if [ $ret_val -eq 0 ]; then
+    echo "OK"
+  else
+    echo "FAILED!"
+    echo "Error: Perl interpreter is not installed!" 
+    exit 1
+  fi
+}
+
+
+modules_chck()
+{
+  for module in ${modules[@]};
+  do
+    echo -n "Checking $module module ... "
+    perl -e "use $module" 2> $err; ret_val=`echo $?`
+    if [ $ret_val -eq 0 ]; then
+      echo "OK"
+    else
+      err
+    fi
+  done
+}
+
+
+installation_dir_chck()
+{
+  echo -n "Checking installation directory ... "
+  if [ ! -d $prefix ]; then
+    echo "FAILED!"
+    ls $prefix
+    exit 1
+  else
+    echo "OK"
+  fi
+}
+
+
+warden_dir_chck()
+{
+  echo -n "Checking warden client directory ... "
+  if [ ! -d $client_path ]; then
+    echo "FAILED!"
+    ls $prefix
+    exit 1
+  else
+    echo "OK"
+  fi
+}
+
+backup()
+{
+  echo -n "Backing-up warden client directory ... "
+  mkdir $backup_dir
+  cp -R $client_path $backup_dir 2> $err; ret_val=`echo $?`
+  if [ $ret_val -eq 0 ]; then
+    echo "OK"
+  else
+    err
+  fi
+}
+
+
+obtain_warden_user()
+{
+  echo -n "Obtaining warden client directory owner ... "
+  user=`stat -c %U $conf_file` 2> $err; ret_val=`echo $?`
+  if [ $ret_val -eq 0 ]; then
+    echo "OK"
+  else
+    err
+  fi
+}
+
+
+update_warden_dir()
+{
+  echo -n "Updating warden client directory ... "
+  rsync -q --recursive --archive --delete --exclude="warden-client/etc" --exclude="warden-client/var" warden-client $prefix 2> $err; ret_val=`echo $?`
+  if [ $ret_val -eq 0 ]; then
+    echo "OK"
+  else
+    err_clean
+  fi
+  cp -u CHANGELOG INSTALL LICENSE README "$client_path/doc"
+}
+
+
+make_conf_file()
+{
+  echo -n "Creating configuration file ... "
+  uri=`cat $conf_file | grep '$URI'`
+  ssl_key_file=`cat $conf_file | grep '$SSL_KEY_FILE'`
+  ssl_cert_file=`cat $conf_file | grep '$SSL_CERT_FILE'`
+  ssl_ca_file=`cat $conf_file | grep '$SSL_CA_FILE'`
+echo "#
+# warden-client.conf - configuration file for the warden sender/receiver client
+#
+
+#-------------------------------------------------------------------------------
+# URI - URI address of Warden server
+#-------------------------------------------------------------------------------
+$uri
+
+#-------------------------------------------------------------------------------
+# SSL_KEY_FILE - path to client SSL certificate key file
+#-------------------------------------------------------------------------------
+$ssl_key_file
+
+#-------------------------------------------------------------------------------
+# SSL_CERT_FILE - path to client SSL certificate file
+#-------------------------------------------------------------------------------
+$ssl_cert_file
+
+#-------------------------------------------------------------------------------
+# SSL_CA_FILE - path to CA certificate file
+#-------------------------------------------------------------------------------
+$ssl_ca_file
+" > $conf_file 2> $err; ret_val=`echo $?`
+  if [ $ret_val -eq 0 ]; then
+    echo "OK"
+  else
+    err_clean
+  fi
+}
+
+
+change_permissions()
+{
+  echo -n "Changing permissions to updated package ... "
+  chown -R $user: $client_path 2>$err; ret_val=`echo $?`
+  if [ $ret_val -eq 0 ]; then
+    echo "OK"
+  else
+    err_clean
+  fi
+}
+
+
+
+#-------------------------------------------------------------------------------
+#				MAIN
+#-------------------------------------------------------------------------------
+
+# list of used Perl modules
+modules=(SOAP::Lite IO::Socket::SSL SOAP::Transport::TCP FindBin)
+
+# OS test
+os_chck
+
+# Shell test
+shell_chck
+
+# read input
+while getopts "d:Vh" options; do
+  case $options in
+    d ) prefix=$OPTARG;;
+    h ) usage;;
+    V ) version;;
+    * ) usage;;
+  esac
+done
+
+# root test
+root_chck
+
+# params test
+params_chck
+
+# create variables
+client_path="$prefix/warden-client"
+etc="$client_path/etc"
+conf_file="$etc/warden-client.conf"
+err="/tmp/warden-err"
+backup_dir="/tmp/warden-backup"
+
+
+echo
+echo "------------------------- Dependencies check-in -------------------------"
+
+# Perl interpreter test
+perl_chck
+
+# Perl modules test
+modules_chck
+
+
+echo
+echo "------------------------- Update process --------------------------------"
+
+# check installation directory
+installation_dir_chck
+
+# check warden client directory
+warden_dir_chck
+
+# backup old warden client installation
+backup
+
+# obtain current warden client user
+obtain_warden_user
+
+# make warden client directory
+update_warden_dir
+
+# create conf file
+make_conf_file
+
+# change permissions
+change_permissions
+
+echo
+echo "Please check configuration file in $conf_file!"
+echo
+echo "Update was SUCCESSFUL!!!"
+
+# cleanup section
+rm -rf $err
+rm -rf $backup_dir
+
+exit 0