diff --git a/product/ERP5Subversion/Tool/SubversionTool.py b/product/ERP5Subversion/Tool/SubversionTool.py
index e7366874f29afa70fd719bea71ccb5057e1d790f..83f806e15e33228bfcba709d6477369fa78a1226 100644
--- a/product/ERP5Subversion/Tool/SubversionTool.py
+++ b/product/ERP5Subversion/Tool/SubversionTool.py
@@ -727,20 +727,28 @@ class SubversionTool(UniqueObject, Folder):
           if 'bt' not in path_list:
             if len(path_list) > 2 :
               tmp=os.sep.join(path_list[2:])
+              tmp2 = re.search('\\.[\w]+$', tmp)
+              if tmp2:
+                extension = tmp2.string[tmp2.start():tmp2.end()].strip()
+                tmp = tmp.replace(extension, '')
               object_to_update[tmp] = 'install'
-        #raise str(object_to_update)
         path = [self.relativeToAbsolute(x, bt) for x in path]
       else:
         path_list = path.split(os.sep)
         if 'bt' not in path_list:
           if len(path_list) > 2 :
             tmp=os.sep.join(path_list[2:])
+            tmp2 = re.search('\\.[\w]+$', tmp)
+            if tmp2:
+              extension = tmp2.string[tmp2.start():tmp2.end()].strip()
+              tmp = tmp.replace(extension, '')
             object_to_update[tmp] = 'install'
         path = self.relativeToAbsolute(path, bt)
     client.revert(path, recurse)
     if bt is not None:
       installed_bt = bt.portal_templates.getInstalledBusinessTemplate(                                                          bt.getTitle())
-      installed_bt.install(object_to_update=object_to_update, force=0)
+      installed_bt.reinstall(object_to_update=object_to_update, force=0)
+      bt.build()
     
   security.declareProtected('Import/Export objects', 'resolved')
   # path can be absolute or relative
@@ -860,6 +868,7 @@ class SubversionTool(UniqueObject, Folder):
     return somethingModified and root
   
   def extractBT(self, bt):
+    bt.build()
     svn_path = self.getSubversionPath(bt) + os.sep
     path = mktemp()  +os.sep
     bt.export(path=path, local=1)