diff --git a/etc/minion.conf b/etc/minion.conf
index 00ff009..d07acc5 100644
--- a/etc/minion.conf
+++ b/etc/minion.conf
@@ -3,4 +3,5 @@
 [main]
 log_level = DEBUG
 acl_dir = /etc/func/minion-acl.d
+known_minions_dir = /var/lib/func/known-minions
 
diff --git a/func.spec b/func.spec
index e460262..b4a9e2a 100644
--- a/func.spec
+++ b/func.spec
@@ -86,6 +86,7 @@ rm -fr $RPM_BUILD_ROOT
 
 %dir /var/log/func
 %dir /var/lib/func
+%dir /var/lib/func/known-minions
 %doc AUTHORS README LICENSE
 %{_mandir}/man1/func.1.gz
 %{_mandir}/man1/func-inventory.1.gz
diff --git a/func/commonconfig.py b/func/commonconfig.py
index 9eaaa88..57f5e48 100644
--- a/func/commonconfig.py
+++ b/func/commonconfig.py
@@ -20,4 +20,5 @@ from certmaster.config import BaseConfig, BoolOption, Option
 class FuncdConfig(BaseConfig):
     log_level = Option('INFO')
     acl_dir = Option('/etc/func/minion-acl.d')
+    known_minions_dir = Option('/var/lib/func/known-minions')
     certmaster_overrides_acls = BoolOption(True)
diff --git a/func/minion/acls.py b/func/minion/acls.py
index 46ae9c2..d9509e3 100644
--- a/func/minion/acls.py
+++ b/func/minion/acls.py
@@ -86,6 +86,7 @@ class Acls(object):
         sub_hash = cert.subject_name_hash()
         self.logger.debug("cn: %s sub_hash: %s" % (cn, sub_hash))
         self.logger.debug("acls %s" % self.acls)
+        self.logger.debug("method: %s" % method)
         if self.acls:
             allow_list = []
             hostkey = '%s-%s' % (cn, sub_hash)
diff --git a/func/overlord/client.py b/func/overlord/client.py
index 12b4c61..ba82a13 100755
--- a/func/overlord/client.py
+++ b/func/overlord/client.py
@@ -114,12 +114,21 @@ class Minions(object):
                 #For example spec = "@home_group;*" will give lots of duplicates as a result
                 if not cert in self.all_certs:
                     self.all_certs.append(cert)
-		    # use basename to trim off any excess /'s, fix
-		    # ticket #53 "Trailing slash in certmaster.conf confuses glob function
+                    # use basename to trim off any excess /'s, fix
+                    # ticket #53 "Trailing slash in certmaster.conf confuses glob function
                     certname = os.path.basename(cert.replace(self.config.certroot, ""))
                     host = certname[:-(len(self.config.cert_extension) + 1)]
                     self.all_hosts.append(host)
 
+            #FIXME - skv - we need to do _something_ here to fill up this dir with a file
+            # named for each minion our overlord/certmaster knows of
+            if not os.path.exists(self.config.known_minions_dir):
+                continue
+            known_minion_glob = "%s/%s" % (self.config.known_minions_dir, each_gloob)
+            minion_hostnames = glob.glob(known_minion_glob)
+            for host in minion_hostnames:
+                self.all_hosts.append(host)
+
     def get_all_hosts(self):
         self._get_new_hosts()
         self._get_all_hosts()
@@ -205,15 +214,20 @@ class Overlord(object):
           # certmaster key, cert, ca
           # funcd key, cert, ca
           # raise FuncClientError
+        # use these if we're the certmaster and 'true' overlord
         ol_key = '%s/certmaster.key' % self.config.cadir
         ol_crt = '%s/certmaster.crt' % self.config.cadir
-        myname = utils.get_hostname(talk_to_certmaster=False)
+        ol_ca = ol_crt
 
+        # use these if we're a pretender to the overlord throne
         # FIXME: should be config -akl?
         # maybe /etc/pki/func is a variable somewhere?
+        myname = utils.get_hostname(talk_to_certmaster=False)
         fd_key = '/etc/pki/certmaster/%s.pem' % myname
         fd_crt = '/etc/pki/certmaster/%s.cert' % myname
-        self.ca = '%s/certmaster.crt' % self.config.cadir
+        fd_ca = '/etc/pki/certmaster/ca.cert' 
+        
+        # if the callers passes in their own use those
         if client_key and client_cert and ca:        
             if (os.access(client_key, os.R_OK) and os.access(client_cert, os.R_OK)
                             and os.access(ca, os.R_OK)):
@@ -224,9 +238,11 @@ class Overlord(object):
         elif os.access(ol_key, os.R_OK) and os.access(ol_crt, os.R_OK):
             self.key = ol_key
             self.cert = ol_crt
+            self.ca = ol_ca
         elif os.access(fd_key, os.R_OK) and os.access(fd_crt, os.R_OK):
             self.key = fd_key
             self.cert = fd_crt
+            self.ca = fd_ca
         else:
             raise Func_Client_Exception, 'Cannot read ssl credentials: ssl, cert, ca. '+\
                   'Ensure you have permission to read files in /etc/pki/certmaster/ directory.'
diff --git a/setup.py b/setup.py
index 5ad20e6..42f3740 100644
--- a/setup.py
+++ b/setup.py
@@ -19,6 +19,7 @@ if __name__ == "__main__":
         initpath   = "/etc/init.d/"
         logpath    = "/var/log/%s/" % NAME
 	varpath    = "/var/lib/%s/" % NAME
+	knownminionspath = "/var/lib/%s/known-minions" % NAME
         rotpath    = "/etc/logrotate.d"
         aclpath    = "%s/minion-acl.d" % etcpath
         setup(
@@ -63,6 +64,7 @@ if __name__ == "__main__":
                               (logpath,  []),
 			      (etcmodpath,  []),
 			      (varpath,  []),
+			      (knownminionspath, []),
 			      (aclpath,  [])
                 ],
                 description = SHORT_DESC,
