diff --git a/installsystems/repository.py b/installsystems/repository.py
index a578d352195e0ec8254cc1ff8a5eb9abc9ef3eb8..7c1bc864b3c1f93ccd039c058055f56fb0837c10 100644
--- a/installsystems/repository.py
+++ b/installsystems/repository.py
@@ -451,7 +451,19 @@ class RepositoryManager(object):
         '''
         Register a repository from its config
         '''
-        debug("Registering repository %s (%s)" % (config.path, config.name))
+        # if path is local, no needs to create a cache
+        if istools.isfile(config.path):
+            debug("Registering direct repository %s (%s)" % (config.path, config.name))
+            self.repos.append(Repository(config))
+        else:
+            debug("Registering cached repository %s (%s)" % (config.path, config.name))
+            self.repos.append(self._cachify(config))
+
+
+    def _cachify(self, config):
+        '''
+        Return a config of a cached repository from an orignal config file
+        '''
         # find destination file and load last info
         if config.name is None or self.cache_path is None:
             # this is a forced temporary repository or without name repo
@@ -477,7 +489,7 @@ class RepositoryManager(object):
                          timeout=self.timeout)
             os.utime(filedest, (rlast, rlast))
         config.dbpath = filedest
-        self.repos.append(Repository(config))
+        return Repository(config)
 
     def get(self, name, version=None):
         '''