diff --git a/bip/utils/config.py b/bip/utils/config.py
index 5e47e8e3a5141126ea63c22482987fea39c76e65..3c0d1c24ffe9f3e5904e0f43f60a7c47fb795519 100644
--- a/bip/utils/config.py
+++ b/bip/utils/config.py
@@ -393,7 +393,7 @@ class Config:
         settings = Config.apply_overrides(settings, overrides)
 
         self.__settings = settings
-        self.__cfgdir   = cfgdir
+        self.__cfgdir   = op.abspath(cfgdir)
 
 
     @property
@@ -402,6 +402,11 @@ class Config:
         return self.__cfgdir
 
 
+    def __len__(self):
+        """Return the number of entries in this Config. """
+        return len(self.__settings)
+
+
     def __contains__(self, key):
         """Return True if a configuration item with key exists. """
         return key in self.__settings
@@ -414,7 +419,7 @@ class Config:
 
     def __getattr__(self, key):
         """Return the configuration item with the specified key. """
-        return self[kwey]
+        return self[key]
 
 
     def get(self, key, default=None):
@@ -443,7 +448,7 @@ class Config:
 
     def gettuple(self, prefix=None, **kwargs):
         """Same as getall, but values are returned as a tuple. """
-        return tuple(self.getall(prefix, **kwargs))
+        return tuple(self.getall(prefix, **kwargs).values())
 
 
     def keys(self):