diff --git a/cfg_checker/modules/network/pinger.py b/cfg_checker/modules/network/pinger.py
index 351c05a..e5fa614 100644
--- a/cfg_checker/modules/network/pinger.py
+++ b/cfg_checker/modules/network/pinger.py
@@ -70,13 +70,15 @@
             }
 
             for tgt_host, tgt_data in nodes.iteritems():
+                _t = _packets[src_host]["targets"]
                 for tgt_if in tgt_data:
                     tgt_if_name = tgt_if['name']
                     _ip_index = 0
                     for tgt_ip in tgt_if['ifs']:
                         _ip = str(tgt_ip.ip)
                         if _ip not in src_ips:
-                            _packets[src_host]["targets"][tgt_host] = []
+                            if tgt_host not in _t:
+                                _t[tgt_host] = []
                             _tgt = {
                                 "ip": _ip,
                                 "tgt_host": tgt_host,
@@ -85,7 +87,7 @@
                                 "mtu": self.target_mtu,
                                 "size": self.packet_size
                             }
-                            _packets[src_host]["targets"][tgt_host].append(
+                            _t[tgt_host].append(
                                 _tgt
                             )
                             _count += 1
@@ -135,7 +137,14 @@
             )
             # Parse salt output
             _result = _results[src]
-            _result = json.loads(_result)
+            try:
+                _result = json.loads(_result)
+            except ValueError:
+                _progress.clearline()
+                logger_cli.error(
+                    "# ERROR: Unexpected salt return: '{}'\n".format(_result)
+                )
+                continue
             # Handle return codes
             for tgt_node, _tgt_ips in _result.iteritems():
                 for _params in _tgt_ips:
