Index: mailjam/config.py
===================================================================
--- mailjam/config.py	(revision 16)
+++ mailjam/config.py	(revision 20)
@@ -42,6 +42,9 @@
                 'mailing_lists', 'members']
     
-    def validate_configfile(self):        
+    def validate_configfile(self):
         if self.configfile:
+            # ensure we have the full path to the provided file
+            self.configfile = os.path.join(os.path.dirname(__file__),
+                                           self.configfile)
             if not os.path.exists(self.configfile):
                 # the file does not exist, so we override it with None,
@@ -49,4 +52,6 @@
                 # config file on the usual places
                 self.configfile = None
+            else:
+                return self.configfile
             
         if not self.configfile:
@@ -56,5 +61,5 @@
                     self.configfile = full_path
                     return full_path
-                
+
         # if we reach here, self.configfile will be still None, no valid
         # config files were found, and so we raise an exception
Index: mailjam/daemon.py
===================================================================
--- mailjam/daemon.py	(revision 16)
+++ mailjam/daemon.py	(revision 20)
@@ -1,3 +1,13 @@
 # -*- coding: utf-8 -*-
+
+"""
+The mailjam project - daemon.py
+
+This file is released under the BSD license, see LICENSE for
+more information.
+
+Francisco de Borja Lopez Rio - <borja@codigo23.net>
+Soluciones Informaticas Codigo23 S.L.U. - http://codigo23.net
+"""
 
 import os, inspect, logging
@@ -12,4 +22,5 @@
 
     def __init__(self, configfile=None):
+        self.configfile=configfile
         self.storage_config = config.get_config_parameters('storage',
                                                            configfile)
@@ -54,5 +65,6 @@
             # now load all the mailing objects:
             for address in self.mailings_addresses:
-                mailing = MailingList(address, address)
+                mailing = MailingList(name=address, address=address,
+                                      configfile=self.configfile)
                 mailing.load()
                 self.mailings[address] = mailing                
@@ -146,4 +158,7 @@
     """
 
+    def __init__(self, configfile=None):
+        self.configfile = configfile
+
     def _listMethods(self):
         public_methods = []
@@ -158,6 +173,6 @@
 
 class MailingListXMLRPC():
-    def __init__(self):
-        self.mailjam = Mailjam()
+    def __init__(self, configfile=None):
+        self.mailjam = Mailjam(configfile=configfile)
         self.mailjam.load()
     def add(self, info={}):
@@ -168,6 +183,6 @@
 
 class MemberXMLRPC():
-    def __init__(self):
-        self.mailjam = Mailjam()
+    def __init__(self, configfile=None):
+        self.mailjam = Mailjam(configfile=configfile)
         self.mailjam.load()
     def add(self, member_addr=None, list_addr=None):
@@ -180,7 +195,6 @@
 class MailjamDaemon():
     def __init__(self, configfile=None):
+        self.configfile = configfile
         self.config = config.get_config_parameters('xmlrpc_server', configfile)
-
-        # FIXME: These should be loaded from a config file
         self.address = self.config.get('address', 'localhost')
         self.port = int(self.config.get('port', 9876))
@@ -221,7 +235,7 @@
         msg = 'Registering public methods'
         logging.info(msg)
-        root = MailjamXMLRPC()
-        root.lists = MailingListXMLRPC()
-        root.members = MemberXMLRPC()
+        root = MailjamXMLRPC(self.configfile)
+        root.lists = MailingListXMLRPC(self.configfile)
+        root.members = MemberXMLRPC(self.configfile)
         self.server.register_instance(root, allow_dotted_names=True)
         self.ready_to_serve = True
Index: mailjam/mta.py
===================================================================
--- mailjam/mta.py	(revision 16)
+++ mailjam/mta.py	(revision 20)
@@ -23,5 +23,5 @@
             raise ValueError(address, ' is not a valid email address')
 
-        mta_config = MTAClientConfig()
+        mta_config = MTAClientConfig(configfile=configfile)
         mta_config.load()
         self.config = mta_config.config
