diff --git a/README.md b/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..a4001719410b9496417f4dab2768637f96c086ef
--- /dev/null
+++ b/README.md
@@ -0,0 +1,51 @@
+```text
+ _______        __
+|_     _|.----.|__|.-----.-----.---.-.
+ _|   |_ |  __||  ||     |  _  |  _  |
+|_______||____||__||__|__|___  |___._|
+                         |_____|
+ ______                     __                   ______ _____   __               __
+|   __ \.---.-.-----.-----.|__|.--.--.-----.    |      |     |_|__|.-----.-----.|  |_
+|    __/|  _  |__ --|__ --||  ||  |  |  -__|    |   ---|       |  ||  -__|     ||   _|
+|___|   |___._|_____|_____||__| \___/|_____|    |______|_______|__||_____|__|__||____|
+```
+
+A set of shell scripts (Bash) for an icinga client.
+With a director script you can create Hosts and service checks with Icingaweb2 director API.
+With an Icinga2 script you can run checks and post its results to the Icinga2 API.
+
+Licencse: GNU GPL 3.0
+
+IML * Institute For Medical Education; University of Bern
+
+## Requirements
+
+Icinga:
+
+* In Icingaweb2 the module "director" must be enabled and the API access to it
+* An existing Icinga 2 instance with enabled API access
+
+On clients:
+
+* Linux with Bash
+
+## Basic Installation
+
+As root...
+
+* Create a non privileged user "icingaclient".
+* Create a directory `mkdir -p /opt/imlmonitor/ && cd /opt/imlmonitor/`
+* Run a git clone: `git clone https://git-repo.iml.unibe.ch/open-source/icinga-passive-client.git client`
+* Set owner: `chown -R icingaclient. client`
+
+## Setup client
+
+* go to the "client" directory `cd /opt/imlmonitor/client` and copy _etc directory to /etc: `cp -r _etc /etc/icingaclient`
+
+## Setup Icingaweb2 director access
+
+TBD
+
+## Setup Icinga2 access
+
+TBD
diff --git a/icinga-cli.sh b/icinga-cli.sh
index b9bfff7ee304e1789e0dbde7432d23a2659a3098..51ecb4269098b61be49b98cc2bea8a74faf5b49b 100755
--- a/icinga-cli.sh
+++ b/icinga-cli.sh
@@ -15,11 +15,12 @@
 # 2022-02-16  v0.8   ah  add --cfg param
 # 2022-03-04  v0.9   ah  abort on http 5xx error
 # 2022-03-14  v0.10  ah  less output and add _elog to run as a service
+# 2022-07-08  v0.11  ah  check pipes in output and performance data
 # ======================================================================
 
 
 _product="ICINGA PASSIVE CLIENT"
-_version="0.10"
+_version="0.11"
 _license="GNU GPL 3.0"
 _copyright='(c) 2020 Institute for Medical Education * University of Bern'
 
@@ -294,6 +295,7 @@ function processCheck(){
   local _myconfig=$1
   local _force=$2
 
+  typeset -i local iPipes
   typeset -i local iCheckStart
   iCheckStart=$(_getUnixTs)
 
@@ -350,16 +352,27 @@ function processCheck(){
             _elog "${_logPrefix} $( ls -ld ${dir_data} $_outfile )"
             exit 1
       fi
+      iPipes=$( sed 's#[^|]##g' "$_outfile" | grep "." | wc -L )
+      _echo "Pipe chars: $iPipes"
+      if [[ $iPipes -gt 1 ]]; then
+        _elog "ABORT - pipes were found in plugin output"
+        exit 1
+      fi
+
       typeset -i local iTsEnd=`date +%s`
       # outPerfdata=`grep '|' $_outfile | cut -f 2 -d '|'`
       outPerfdata=`grep '|' $_outfile | rev | cut -f 1 -d '|' | rev`
       _echo
       _echo -------- check output:
-      _echo $( cat $_outfile )
+      _echo $( cat "$_outfile" )
       _echo
       # echo -------- extracted performance data:
       # echo $outPerfdata
       # echo
+      if ! echo "$outPerfdata" | grep "=[0-9\.]*;[0-9\.]*;[0-9\.]*;[0-9\.]*;" >/dev/null; then
+        _elog "ABORT - this does not look like performance data: $outPerfdata"
+        exit 1
+      fi
       _log "${_logPrefix} check command finished with returncode $rc"
 
       _rc=$_rc+$rc