Index: /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/configure.zcml
===================================================================
--- /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/configure.zcml	(revision 1604)
+++ /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/configure.zcml	(revision 1605)
@@ -144,4 +144,9 @@
         component=".ofsmanager.OFSExporterSection"
         name="quintagroup.transmogrifier.ofsexporter"
+        />
+
+    <utility
+        component=".ofsmanager.OFSImporterSection"
+        name="quintagroup.transmogrifier.ofsimporter"
         />
 
Index: /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/export.cfg
===================================================================
--- /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/export.cfg	(revision 1604)
+++ /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/export.cfg	(revision 1605)
@@ -4,4 +4,5 @@
     manifestexporter
     fileexporter
+    
     marshaller
     propertiesexporter
@@ -14,4 +15,5 @@
 [sitewalker]
 blueprint = quintagroup.transmogrifier.sitewalker
+condition = python:hasattr(context,'getPortalTypeName') or context.meta_type in ['Image','File']
 
 [manifestexporter]
@@ -20,4 +22,7 @@
 [fileexporter]
 blueprint = quintagroup.transmogrifier.fileexporter
+
+[ofsexporter]
+blueprint = quintagroup.transmogrifier.ofsexporter
 
 [marshaller]
Index: /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/import.cfg
===================================================================
--- /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/import.cfg	(revision 1604)
+++ /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/import.cfg	(revision 1605)
@@ -7,4 +7,5 @@
     fileimporter
     demarshaller
+    ofsimporter
     referencesimporter
     propertiesimporter
@@ -30,4 +31,7 @@
 [constructor]
 blueprint = quintagroup.transmogrifier.extendedconstructor
+meta-types = 
+    Image
+    File
 
 [datacorrector]
@@ -42,4 +46,7 @@
 [demarshaller]
 blueprint = quintagroup.transmogrifier.demarshaller
+
+[ofsimporter]
+blueprint = quintagroup.transmogrifier.ofsimporter
 
 [referencesimporter]
Index: /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/ofsmanager.py
===================================================================
--- /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/ofsmanager.py	(revision 1604)
+++ /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/ofsmanager.py	(revision 1605)
@@ -49,4 +49,8 @@
                     fields['height'] = getattr(obj, 'height', 0)
 
+                if not self.condition(item, context=obj,
+                                      fprop_info=fields):
+                    continue
+
                 files['file-properties'] = {
                     'name': '.file-properties.xml',
@@ -96,2 +100,75 @@
         return data
 
+
+class OFSImporterSection(object):
+    classProvides(ISectionBlueprint)
+    implements(ISection)
+
+    def __init__(self, transmogrifier, name, options, previous):
+        self.previous = previous
+        self.context = transmogrifier.context
+
+        self.pathkey = defaultMatcher(options, 'path-key', name, 'path')
+        self.fileskey = defaultMatcher(options, 'files-key', name, 'files')
+        self.contextkey = defaultMatcher(options, 'context-key', name, 'import_context')
+
+        self.condition = Condition(options.get('condition', 'python:True'),
+                                   transmogrifier, name, options)
+        self.ttt = 0
+
+    def __iter__(self):
+        for item in self.previous:
+            pathkey = self.pathkey(*item.keys())[0]
+            fileskey = self.fileskey(*item.keys())[0]
+
+            if not (pathkey and fileskey):
+                yield item; continue
+            if 'file-properties' not in item[fileskey]:
+                yield item; continue
+
+            path = item[pathkey]
+            obj = self.context.unrestrictedTraverse(path, None)
+            if obj is None:         # path doesn't exist
+                yield item; continue
+
+            if obj.meta_type in ["File", "Image"]:
+                if not self.ttt:
+                    self.ttt = 1
+                    import pdb;pdb.set_trace()
+                try:
+                    manifest = item[fileskey]['file-properties']['data']
+                    prop_info = self.parseManifest(manifest)
+                    # Update file/image properties
+                    if not self.condition(item, context=obj,
+                                          fprop_info=prop_info):
+                        continue
+                    for prop_id, prop_val in prop_info.items():
+                        setattr(obj, prop_id, prop_val)
+
+                    # Add data for file/image
+                    name = prop_info.get('__name__', None)
+                    if name is None:
+                        continue
+                    data = item[fileskey].get(name, None)
+                    if data is None:
+                        continue
+                    obj.data = data['data']
+                    
+                except Exception, e:
+                    print "Exception in ofsimporter section:"
+                    print '-'*60
+                    traceback.print_exc()
+                    print '-'*60
+
+            yield item
+
+    def parseManifest(self, manifest):
+        doc = minidom.parseString(manifest)
+        props = {}
+        for prop in doc.getElementsByTagName('prop'):
+            prop_id = str(prop.getAttribute('id'))
+            if not prop_id:
+                continue
+            props[prop_id] = str(prop.firstChild.nodeValue.strip())
+
+        return props
