diff --git a/bin/cdist b/bin/cdist
index 8f556b1e..3f57de40 100755
--- a/bin/cdist
+++ b/bin/cdist
@@ -189,7 +189,13 @@ class Cdist:
 
    def list_type_explorers(self, type):
       """Return list of available explorers for a specific type"""
-      return os.listdir(type_explorer_dir(type))
+      dir = self.type_explorer_dir(type)
+      if os.path.isdir(dir):
+         list = os.listdir(dir)
+      else:
+         list = []
+
+      return list
 
    def list_object_paths(self, starting_point = False):
       """Return list of paths of existing objects"""
@@ -234,7 +240,7 @@ class Cdist:
       """Return directory that holds the explorers of a type"""
       return os.path.join(TYPE_DIR, type, "explorer")
 
-   def remote_type_explorer_dir(type):
+   def remote_type_explorer_dir(self, type):
       """Return remote directory that holds the explorers of a type"""
       return os.path.join(REMOTE_TYPE_DIR, type, "explorer")
 
@@ -246,17 +252,20 @@ class Cdist:
       if type in self.type_explorers_transferred:
          log.debug("Skipping retransfer for %s", type)
          return
+      else:
+         # Do not retransfer
+         self.type_explorers_transferred[type] = 1
 
       src = self.type_explorer_dir(type)
       remote_base = os.path.join(REMOTE_TYPE_DIR, type)
-      dst = self.type_explorer_dir(type)
+      dst = self.remote_type_explorer_dir(type)
 
-      # Ensure the path path exists
-      self.remote_run_or_fail(["mkdir", "-p", remote_base])
-      self.transfer_dir(src, dst)
+      # Only continue, if there is at least the directory
+      if os.path.isdir(src):
+         # Ensure that the path exists
+         self.remote_run_or_fail(["mkdir", "-p", remote_base])
+         self.transfer_dir(src, dst)
 
-      # Do not retransfer
-      self.type_explorers_transferred[type] = 1
 
    def link_type_to_emulator(self):
       """Link type names to cdist-type-emulator"""
@@ -293,12 +302,12 @@ class Cdist:
 
       cmd = []
       cmd.append("__explorer=" + REMOTE_GLOBAL_EXPLORER_DIR)
-      cmd.append("__type_explorer=" + remote_type_explorer_dir(type))
+      cmd.append("__type_explorer=" + self.remote_type_explorer_dir(type))
 
-      explorers = list_type_explorers(type)
+      explorers = self.list_type_explorers(type)
       for explorer in explorers:
          remote_cmd = cmd
-         remote_cmd.append(os.path.join(remote_type_explorer_dir(type), explorer))
+         remote_cmd.append(os.path.join(self.remote_type_explorer_dir(type), explorer))
 
          self.remote_run_or_fail(remote_cmd)