diff --git a/cfg_checker/common/salt_utils.py b/cfg_checker/common/salt_utils.py
index d4bd007..b913531 100644
--- a/cfg_checker/common/salt_utils.py
+++ b/cfg_checker/common/salt_utils.py
@@ -86,7 +86,7 @@
         self._token = self._login()
         self.last_response = None
 
-    def get(self, path='', headers=default_headers, cookies=None):
+    def get(self, path='', headers=default_headers, cookies=None, timeout=None):
         _path = os.path.join(self.uri, path)
         logger.debug("# GET '{}'\nHeaders: '{}'\nCookies: {}".format(
             _path,
@@ -96,7 +96,8 @@
         return requests.get(
             _path,
             headers=headers,
-            cookies=cookies
+            cookies=cookies,
+            timeout=timeout
         )
 
     def post(self, data, path='', headers=default_headers, cookies=None):
@@ -286,7 +287,12 @@
             Works starting from 2017.7.7
             api returns dict of minions with grains
         """
-        return self.salt_request('get', 'minions')[0]
+        try:
+            _r = self.salt_request('get', 'minions', timeout=10)
+        except requests.exceptions.ReadTimeout as e:
+            logger_cli.debug("... timeout waiting list minions from Salt API")
+            _r = None
+        return _r[0] if _r else None
 
     def list_keys(self):
         """
@@ -321,7 +327,7 @@
         """
         if config.skip_nodes:
             logger.info("# Nodes to be skipped: {0}".format(config.skip_nodes))
-            return self.cmd(
+            _r = self.cmd(
                 '* and not ' + list_to_target_string(
                     config.skip_nodes,
                     'and not'
@@ -329,7 +335,9 @@
                 'test.ping',
                 expr_form='compound')
         else:
-            return self.cmd('*', 'test.ping')
+            _r = self.cmd('*', 'test.ping')
+        # Return all nodes that responded            
+        return [node for node in _r.keys() if _r[node]]
 
     def get_monitoring_ip(self, param_name):
         salt_output = self.cmd(
