Index: /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/configure.zcml
===================================================================
--- /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/configure.zcml	(revision 1603)
+++ /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/configure.zcml	(revision 1604)
@@ -137,7 +137,25 @@
 
     <utility
+        component=".constructor.ConstructorSection"
+        name="quintagroup.transmogrifier.extendedconstructor"
+        />
+
+    <utility
         component=".ofsmanager.OFSExporterSection"
         name="quintagroup.transmogrifier.ofsexporter"
         />
+
+    <utility
+        component=".utilities.FileFTIUtility"
+        provides=".interfaces.IFTIConstructor4MetaType"
+        name="File"
+        />
+
+    <utility
+        component=".utilities.ImageFTIUtility"
+        provides=".interfaces.IFTIConstructor4MetaType"
+        name="Image"
+        />
+
 
     <adapter factory=".portlets.PortletAssignmentExportImportHandler" />
Index: /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/constructor.py
===================================================================
--- /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/constructor.py	(revision 1603)
+++ /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/constructor.py	(revision 1604)
@@ -1,3 +1,4 @@
 from zope.interface import classProvides, implements
+from zope.component import queryUtility
 from collective.transmogrifier.interfaces import ISectionBlueprint
 from collective.transmogrifier.interfaces import ISection
@@ -6,4 +7,6 @@
 from Acquisition import aq_base
 from Products.CMFCore.utils import getToolByName
+
+from quintagroup.transmogrifier.interfaces import IFTIConstructor4MetaType
 
 class ConstructorSection(object):
@@ -19,4 +22,6 @@
                                       ('portal_type', 'Type'))
         self.pathkey = defaultMatcher(options, 'path-key', name, 'path')
+        self.meta_types = filter(None, [i.strip() for i in
+                                         options.get('meta-types', '').splitlines()])
     
     def __iter__(self):
@@ -33,6 +38,11 @@
             fti = self.ttool.getTypeInfo(type_)
             if fti is None:                           # not an existing type
-                yield item; continue
-            
+                # Look for an IFTIConstructor4MetaType adapter
+                mt = type_.startswith("meta_type:") and type_[10:] or None
+                if mt in self.meta_types:
+                    fti = queryUtility(IFTIConstructor4MetaType, name=mt)
+                if fti is None:
+                    yield item; continue
+
             elems = path.strip('/').rsplit('/', 1)
             container, id = (len(elems) == 1 and ('', elems[0]) or elems)
@@ -40,12 +50,12 @@
             if context is None:                       # container doesn't exist
                 yield item; continue
-            
+
             if getattr(aq_base(context), id, None) is not None: # item exists
                 yield item; continue
-            
+
             obj = fti._constructInstance(context, id)
             obj = fti._finishConstruction(obj)
             if obj.getId() != id:
                 item[pathkey] = '%s/%s' % (container, obj.getId())
-            
+
             yield item
Index: /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/import.cfg
===================================================================
--- /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/import.cfg	(revision 1603)
+++ /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/import.cfg	(revision 1604)
@@ -23,4 +23,5 @@
 .interfaces.xml = interfaces
 .portlets.xml = portlets
+.file-properties.xml = file-properties
 
 [manifestimporter]
@@ -28,5 +29,5 @@
 
 [constructor]
-blueprint = collective.transmogrifier.sections.constructor
+blueprint = quintagroup.transmogrifier.extendedconstructor
 
 [datacorrector]
Index: /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/interfaces.py
===================================================================
--- /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/interfaces.py	(revision 1603)
+++ /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/interfaces.py	(revision 1604)
@@ -16,2 +16,16 @@
         """ Correct data given in 'data' argument and return it.
         """
+
+class IFTIConstructor4MetaType(Interface):
+    """FTI utility analogy for constuct instance for not CMF objects"""
+
+    def _constructInstance(self, container, id, *args, **kw):
+        """Build a bare instance of the appropriate type.
+        Does not do any security checks.
+        Returns the object without calling _finishConstruction().
+        """
+
+    def _finishConstruction(obj):
+        """Finish the construction of a content object.
+        Set its portal_type, insert it into the workflows.
+        """
Index: /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/utilities.py
===================================================================
--- /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/utilities.py	(revision 1604)
+++ /quintagroup.transmogrifier/branches/ofs/quintagroup/transmogrifier/utilities.py	(revision 1604)
@@ -0,0 +1,37 @@
+from zope.interface import implements
+
+class ImageFTI(object):
+    def _constructInstance(self, container, id, *args, **kw):
+        """Build a bare instance of the appropriate type.
+        Does not do any security checks.
+        Returns the object without calling _finishConstruction().
+        """
+        file, title = None, ''
+        id = container.manage_addProduct['OFSP'].manage_addImage(id, file, title)
+        return container.get(id, None)
+
+    def _finishConstruction(self, obj):
+        """Finish the construction of a content object.
+        Set its portal_type, insert it into the workflows.
+        """
+        return obj
+
+ImageFTIUtility = ImageFTI()
+
+class FileFTI(object):
+    def _constructInstance(self, container, id, *args, **kw):
+        """Build a bare instance of the appropriate type.
+        Does not do any security checks.
+        Returns the object without calling _finishConstruction().
+        """
+        file, title = None, ''
+        id = container.manage_addProduct['OFSP'].manage_addFile(id, file, title)
+        return container.get(id, None)
+
+    def _finishConstruction(self, obj):
+        """Finish the construction of a content object.
+        Set its portal_type, insert it into the workflows.
+        """
+        return obj
+
+FileFTIUtility = FileFTI()
