diff --git a/synthesis/configparser.py b/synthesis/configparser.py
index 784b402246cd3c1a95f502269e0e554da558b3a4..34658eb2ddce9b891e5036abe98d83b1c10a864a 100644
--- a/synthesis/configparser.py
+++ b/synthesis/configparser.py
@@ -173,6 +173,9 @@ class ConfigParser(object):
 
         raise RuntimeError("Config file should be added only once")
 
+    def add_arbitrary_code(self, code):
+        self.arbitrary_code = code
+
     def parse(self):
         options = {}
         ret = {}
diff --git a/synthesis/module.py b/synthesis/module.py
index b37ba3bf38e5242b1cc753e2b5ffd00882ea620d..ff0bba5b9facb4036ef212cf39bcc967de013609 100644
--- a/synthesis/module.py
+++ b/synthesis/module.py
@@ -21,6 +21,7 @@ class Module(object):
             self.options["files"] = files
         if manifest != None and fetchto == None:
             options["fetchto"] = os.path.dirname(manifest.path)
+
         if manifest != None and url == None and path == None:
             self.options["url"] = os.path.dirname(manifest.path)
             self.options["path"] = os.path.dirname(manifest.path)
@@ -32,7 +33,7 @@ class Module(object):
                 self.options["path"] = path
                 self.options["url"] = url
         if manifest == None:
-            if self.options["path"] != None:
+            if path != None:
                 self.options["manifest"] = self.search_for_manifest()
             else:
                 self.options["manifest"] = None
@@ -43,6 +44,7 @@ class Module(object):
             self.options["isfetched"] = True
         else:
             self.options["isfetched"] = isfetched
+
         if source != None:
             if source not in ["local", "svn", "git"]:
                 raise ValueError("Inproper source: " + source)
@@ -81,9 +83,10 @@ class Module(object):
         """
         p.vprint("Looking for manifest in " + self.path)
         for filename in os.listdir(self.path):
-            if filename == "manifest.py" and not os.path.isdir(filename):
-                manifest = Manifest(path=os.path.abspath(os.path.join(self.path, filename)))
-                return manifest
+            if filename == "manifest.py" or filename == "Manifest.py":
+                if not os.path.isdir(filename):
+                    manifest = Manifest(path=os.path.abspath(os.path.join(self.path, filename)))
+                    return manifest
         # no manifest file found
         return None