Index: pisi/pxml/xmlfile.py
===================================================================
--- pisi/pxml/xmlfile.py	(revision 26639)
+++ pisi/pxml/xmlfile.py	(working copy)
@@ -27,6 +27,7 @@
 
 import codecs
 import exceptions
+import cStringIO
 
 import piksemel as iks
 
@@ -79,8 +80,17 @@
             localpath = pisi.file.File.download(uri, tmpDir, sha1sum=sha1sum, 
                                                 compress=compress,sign=sign, copylocal=copylocal)
 
+        st = cStringIO.StringIO()
+
         try:
-            self.doc = iks.parse(localpath)
+            from preprocess import preprocess, PreprocessError
+            preprocess(infile=localpath, outfile=st, defines=pisi.config.Config().values.directives)
+            st.seek(0)
+        except:
+            st = open(localpath, "r")
+
+        try:
+            self.doc = iks.parseString(st.read())
             return self.doc
         except OSError, e:
             raise Error(_("Unable to read file (%s): %s") %(localpath,e))
Index: pisi/configfile.py
===================================================================
--- pisi/configfile.py	(revision 26639)
+++ pisi/configfile.py	(working copy)
@@ -179,6 +179,18 @@
             dirsitems = []
         self.dirs = ConfigurationSection("directories", dirsitems)
 
+        try:
+            directiveitems = self.parser.items("directives")
+        except ConfigParser.NoSectionError:
+            self.directives = {}
+        else:
+            self.directives = {}
+            for k,v in directiveitems:
+                if v in ("True", "False"):
+                    self.directives[k] = eval(v)
+                else:
+                    self.directives[k] = v
+
     # get, set and write_config methods added for manipulation of pisi.conf file from Comar to solve bug #5668.
     # Current ConfigParser does not keep the comments and white spaces, which we do not want for pisi.conf. There
     # are patches floating in the python sourceforge to add this feature. The write_config code is from python
