diff --git a/checks/cisco_bgp_peer b/checks/cisco_bgp_peer
index 64a2a7ae2b7020d4cc2439aaeab9a649d4c44534..afad587218fa7fb89b3b871d83c4db1ae4b28b23 100644
--- a/checks/cisco_bgp_peer
+++ b/checks/cisco_bgp_peer
@@ -3,7 +3,7 @@
 #
 # Cisco BGP Peer
 #
-# Author: Th.L.
+# Author: thl-cmk[at]outlook[dot]com / thl-cmk.hopto.org
 # Date  : 2017-12-26
 #
 # Monitor status of Cisco BGP Peer (IPv4 and IPv6)
@@ -20,6 +20,7 @@
 # 02.18.2019: added fix for empty values ("" instead of "0") sugested by Laurent Barbier (lbarbier[at]arkane-studios[dot]com)
 # 24.02.2020: added workaround for missing cbgpPeer2AddrFamily (example L2VPN EVPN peers, Fix for jonale82[at]gmail[dot]com)
 # 02.03.2020: changed handling of perfdata, add only data the are really there (not None, instead of setting them to 0)
+# 04.06.2020: code cleanup --> changed isdigit test to try/except loop, changed peer.get test to try/except loop
 #
 
 #
@@ -277,33 +278,25 @@ def parse_cisco_bgp_peer(info):
             prefixclearthreshold, advertisedprefixes, suppressedprefixes, withdrawnprefixes = entry
 
             remoteaddr = cisco_bgp_get_peer(entry[0])
-            peer = {'remoteaddr': remoteaddr}
-
-            peer.update({'addrfamilyname': addrfamilyname})
-
-            if prefixadminlimit.isdigit():
-                peer.update({'prefixadminlimit':int(prefixadminlimit)})
-
-            if prefixthreshold.isdigit():
-                peer.update({'prefixthreshold':int(prefixthreshold)})
-
-            if prefixclearthreshold.isdigit():
-                peer.update({'prefixclearthreshold':int(prefixclearthreshold)})
-
-            if acceptedprefixes.isdigit():
-                peer.update({'acceptedprefixes':int(acceptedprefixes)})
-
-            if advertisedprefixes.isdigit():
-                peer.update({'advertisedprefixes':int(advertisedprefixes)})
-
-            if deniedprefixes.isdigit():
-                peer.update({'deniedprefixes':int(deniedprefixes)})
-
-            if suppressedprefixes.isdigit():
-                peer.update({'suppressedprefixes':int(suppressedprefixes)})
-
-            if withdrawnprefixes.isdigit():
-                peer.update({'withdrawnprefixes':int(withdrawnprefixes)})
+            peer = {
+                'remoteaddr': remoteaddr,
+                'addrfamilyname': addrfamilyname
+            }
+
+            for key, value in [
+                ('prefixadminlimit', prefixadminlimit),
+                ('prefixthreshold', prefixthreshold),
+                ('prefixclearthreshold', prefixclearthreshold),
+                ('acceptedprefixes', acceptedprefixes),
+                ('advertisedprefixes', advertisedprefixes),
+                ('deniedprefixes', deniedprefixes),
+                ('suppressedprefixes', suppressedprefixes),
+                ('withdrawnprefixes', withdrawnprefixes),
+            ]:
+                try:
+                    peer[key] = int(value)
+                except ValueError:
+                    pass
 
             peer_prefixes.update({'%s %s' % (remoteaddr, addrfamilyname): peer})
 
@@ -313,8 +306,7 @@ def parse_cisco_bgp_peer(info):
             remoteaddr = cisco_bgp_get_peer(entry[0])
             addrfamilyname = ''
 
-            peer = {'remoteaddr': remoteaddr,
-                    }
+            peer = {'remoteaddr': remoteaddr,}
 
             peer_prefixes.update({'%s %s' % (remoteaddr, addrfamilyname): peer})
 
@@ -335,26 +327,22 @@ def parse_cisco_bgp_peer(info):
                 'prevstate': int(prevstate),
                 }
 
-        if state.isdigit():
-            peer.update({'state': int(state)})
-        if adminstatus.isdigit():
-            peer.update({'adminstate': int(adminstatus)})
-        if localas.isdigit():
-            peer.update({'localas': int(localas)})
-        if remoteas.isdigit():
-            peer.update({'remoteas': int(remoteas)})
-        if inupdates.isdigit():
-            peer.update({'inupdates':int(inupdates)})
-        if outupdates.isdigit():
-            peer.update({'outupdates': int(outupdates)})
-        if intotalmessages.isdigit():
-            peer.update({'intotalmessages': int(intotalmessages)})
-        if outtotalmessages.isdigit():
-            peer.update({'outtotalmessages': int(outtotalmessages)})
-        if fsmestablishedtransitions.isdigit():
-            peer.update({'fsmestablishedtransitions': int(fsmestablishedtransitions)})
-        if inupdates.isdigit():
-            peer.update({'fsmestablishedtime': int(fsmestablishedtime)})
+        for key, value in [
+            ('state', state),
+            ('adminstate', adminstatus),
+            ('localas', localas),
+            ('remoteas', remoteas),
+            ('inupdates', inupdates),
+            ('outupdates', outupdates),
+            ('intotalmessages', intotalmessages),
+            ('outtotalmessages', outtotalmessages),
+            ('fsmestablishedtransitions', fsmestablishedtransitions),
+            ('fsmestablishedtime', fsmestablishedtime),
+        ]:
+            try:
+                peer[key] = int(value)
+            except ValueError:
+                pass
 
         peer_table.update({'%s' % cisco_bgp_get_peer(oid_end): peer})
 
@@ -437,20 +425,23 @@ def check_cisco_bgp_peer(item, params, parsed):
         if peer.get('localas') == 0:
             peer.update({'localas': params.get('useaslocalas')})
 
-        infotext_values = params.get('infotext_values')
+        infotext_values = params.get('infotext_values', [])
 
         if alias != '':
             infotext += ', Alias: %s' % alias
-        if 'remoteid' in infotext_values:
-            infotext += ', Remote ID: %s' % peer.get('remoteid')
-        if 'remoteas' in infotext_values:
-            infotext += ', Remote AS: %s' % peer.get('remoteas')
-        if 'localaddr' in infotext_values:
-            infotext += ', Local address: %s' % peer.get('localaddr')
-        if 'localid' in infotext_values:
-            infotext += ', Local ID: %s' % peer.get('localid')
-        if 'localas' in infotext_values:
-            infotext += ', Local AS: %s' % peer.get('localas')
+
+        for key, value in [
+            ('remoteid', ', Remote ID: %s'),
+            ('remoteas', ', Remote AS: %s'),
+            ('localaddr', ', Local address: %s'),
+            ('localid', ', Local ID: %s'),
+            ('localas', ', Local AS: %s'),
+        ]:
+            try:
+                if key not in infotext_values:
+                    infotext += value % peer[key]
+            except KeyError:
+                pass
 
         peerstate = peer.get('state')
         adminstate = peer.get('adminstate')
@@ -520,7 +511,7 @@ def check_cisco_bgp_peer(item, params, parsed):
                 else:
                     longoutput += '\n{}: {}'.format(entry[0], entry[1])
 
-        if prefixadminlimit is not None and acceptedprefixes is not None and prefixadminlimit is not None and warnthreshold is not None:
+        if prefixadminlimit is not None and acceptedprefixes is not None and warnthreshold is not None:
             if acceptedprefixes >= prefixadminlimit:
                 yield 2, 'Prefix admin limit reached (%d/%d)' % (acceptedprefixes, prefixadminlimit)
             elif prefixthreshold > 0:
@@ -533,39 +524,33 @@ def check_cisco_bgp_peer(item, params, parsed):
             perfdata.append(('acceptedprefixes', acceptedprefixes))
 
         now_time = time.time()
-        rate_item = item.replace(' ', '_')
-
-        if prefixes.get('deniedprefixes', None) is not None:
-            deniedprefixes = get_rate('cisco_bgp_peer.%s.%s' % ('deniedprefixes', rate_item), now_time, prefixes.get('deniedprefixes', 0), onwrap=SKIP)
-            perfdata.append(('deniedprefixes', deniedprefixes))
-        if prefixes.get('advertisedprefixes', None) is not None:
-            advertisedprefixes = get_rate('cisco_bgp_peer.%s.%s' % ('advertisedprefixes', rate_item), now_time, prefixes.get('advertisedprefixes', 0), onwrap=SKIP)
-            perfdata.append(('advertisedprefixes', advertisedprefixes))
-        if prefixes.get('withdrawnprefixes', None) is not None:
-            withdrawnprefixes = get_rate('cisco_bgp_peer.%s.%s' % ('withdrawnprefixes', rate_item), now_time, prefixes.get('withdrawnprefixes', 0), onwrap=SKIP)
-            perfdata.append(('withdrawnprefixes', withdrawnprefixes))
-        if prefixes.get('suppressedprefixes', None) is not None:
-            suppressedprefixes = get_rate('cisco_bgp_peer.%s.%s' % ('suppressedprefixes', rate_item), now_time, prefixes.get('suppressedprefixes', 0), onwrap=SKIP)
-            perfdata.append(('suppressedprefixes', suppressedprefixes))
-
-        if peer.get('inupdates', None) is not None:
-            inupdates = get_rate('cisco_bgp_peer.%s.%s' % ('inupdates', rate_item), now_time, peer.get('inupdates', 0), onwrap=SKIP)
-            perfdata.append(('inupdates', inupdates))
-        if peer.get('outupdates', None) is not None:
-            outupdates = get_rate('cisco_bgp_peer.%s.%s' % ('outupdates', rate_item), now_time, peer.get('outupdates', 0), onwrap=SKIP)
-            perfdata.append(('outupdates', outupdates))
-        if peer.get('intotalmessages', None) is not None:
-            intotalmessages = get_rate('cisco_bgp_peer.%s.%s' % ('intotalmessages', rate_item), now_time, peer.get('intotalmessages', 0), onwrap=SKIP)
-            perfdata.append(('intotalmessages', intotalmessages))
-        if peer.get('outtotalmessages', None) is not None:
-            outtotalmessages = get_rate('cisco_bgp_peer.%s.%s' % ('outtotalmessages', rate_item), now_time, peer.get('outtotalmessages', 0), onwrap=SKIP)
-            perfdata.append(('outtotalmessages', outtotalmessages))
-        if peer.get('fsmestablishedtransitions', None) is not None:
-            perfdata.append(('fsmestablishedtransitions', peer.get('fsmestablishedtransitions')))
-        if peer.get('fsmestablishedtime', None) is not None:
-            perfdata.append(('fsmestablishedtime', peer.get('fsmestablishedtime')))
-        if peer.get('inupdateelapsedtime', None) is not None:
-            perfdata.append(('inupdateelapsedtime', peer.get('inupdateelapsedtime')))
+        rate_item = item.replace(' ', '_').replace(':','_')
+
+        for key in [
+            'deniedprefixes',
+            'advertisedprefixes',
+            'withdrawnprefixes',
+            'suppressedprefixes',
+            'inupdates',
+            'outupdates',
+            'intotalmessages',
+            'outtotalmessages',
+        ]:
+            try:
+                value = get_rate('cisco_bgp_peer.%s.%s' % (key, rate_item), now_time, prefixes[key], onwrap=SKIP)
+                perfdata.append((key, value))
+            except KeyError:
+                pass
+
+        for key in [
+            'fsmestablishedtransitions',
+            'fsmestablishedtime',
+            'inupdateelapsedtime'
+        ]:
+            try:
+                perfdata.append((key, peer[key]))
+            except KeyError:
+                pass
 
         if infotext[0:2] == ', ':
             infotext = infotext[2:]
diff --git a/cisco_bgp_peer.mkp b/cisco_bgp_peer.mkp
index f38a5837880c0e0eabf8b68b55b52d9765e19a5e..3eaaaaf107a4babd445587b9626d80b715129f7a 100644
Binary files a/cisco_bgp_peer.mkp and b/cisco_bgp_peer.mkp differ
diff --git a/packages/cisco_bgp_peer b/packages/cisco_bgp_peer
index 43fb9401cc63dbca003bcad7583e033e953db9d1..e8b8f66a5c358aeac7eb05954c32ee1948b785b1 100644
--- a/packages/cisco_bgp_peer
+++ b/packages/cisco_bgp_peer
@@ -7,6 +7,6 @@
  'name': 'cisco_bgp_peer',
  'num_files': 3,
  'title': u'Cisco BGP Peer',
- 'version': '20200302.v.0.2d',
+ 'version': '20200604.v.0.2c',
  'version.min_required': '1.2.8b8',
  'version.packaged': '1.4.0p38'}
\ No newline at end of file
diff --git a/web/plugins/wato/cisco_bgp_peer.py b/web/plugins/wato/cisco_bgp_peer.py
index a4257f74a59bd2ccd583af94c4fa2c16197e019d..19a18b4d6d1f9cf531e980ba92ea6cab08ac0b75 100644
--- a/web/plugins/wato/cisco_bgp_peer.py
+++ b/web/plugins/wato/cisco_bgp_peer.py
@@ -4,7 +4,7 @@
 #
 # Check_MK cisco_bgp_peers WATO plugin
 #
-# Author: Th.L.
+# Author: thl-cmk[at]outlook[dot]com / thl-cmk.hopto.org
 # Date: 2017-12-25
 #
 #
@@ -12,7 +12,7 @@
 #
 
 
-infotext_values = [
+cisco_bgp_peer_infotext_values = [
     ('remoteid', 'Remote router ID'),
     ('remoteas', 'Remote autonomous system'),
     ('localaddr', 'Local peer IP address'),
@@ -56,10 +56,10 @@ register_check_parameters(
              )),
             ('infotext_values',
              ListChoice(
-                 title=_('Infotext values'),
-                 label=_('Infotext values'),
-                 help=_('Values to show in Infotext'),
-                 choices=infotext_values,
+                 title=_('Remove values from Infotext'),
+                 label=_('Remove values from infotext'),
+                 help=_('Select values to remove from check output.'),
+                 choices=cisco_bgp_peer_infotext_values,
                  default_value=[],
              )),
             ('peer_list',
@@ -68,7 +68,7 @@ register_check_parameters(
                      title=('BGP Peers'),
                      elements=[
                          TextUnicode(
-                             title=_('BGP Peer item name'),
+                             title=_('BGP Peer item name (without "Cisco BGP peer")'),
                              help=_('The configured value must match a BGP item reported by the monitored '
                                     'device. For example: "10.194.115.98 IPv4 Unicast"'),
                              allow_empty=False,