diff --git a/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/DeliveryLineSetZeroPriceAndOrUpdateAppliedRule.xml b/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/DeliveryLineSetZeroPriceAndOrUpdateAppliedRule.xml
index dd417eeb5b9b2483710c915107f2ef9eb98397bc..f6ca355e88d8e59b7b2904ceddc86be50a638a40 100644
--- a/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/DeliveryLineSetZeroPriceAndOrUpdateAppliedRule.xml
+++ b/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/DeliveryLineSetZeroPriceAndOrUpdateAppliedRule.xml
@@ -51,14 +51,11 @@
         <item>
             <key> <string>_body</string> </key>
             <value> <string>portal_type = context.getPortalType()\n
-assert( portal_type in context.getPortalDeliveryMovementTypeList() + (\'Sale Order Line\',) )\n
+assert( portal_type in context.getPortalDeliveryMovementTypeList())\n
 common_specialise = \'sale_trade_condition_module/vifib_trade_condition\'\n
 specialise = context.getParentValue().getSpecialise()\n
 if common_specialise != specialise:\n
   context.getParentValue().setSpecialise(common_specialise)\n
-if portal_type == \'Sale Order Line\':\n
-  # nothing else to do\n
-  return\n
 context.setPrice(0.0)\n
 if context.getSimulationState() == \'cancelled\':\n
   # force no simulation\n
diff --git a/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/ERP5Site_setDeliveryLinePriceZeroAndOrUpdateAppliedRule.xml b/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/ERP5Site_setDeliveryLinePriceZeroAndOrUpdateAppliedRule.xml
index fadbd75503c0915a0ba3dc9e6262e13dbc8c116c..f511ee3c67ee4da8640063a3d4953b42abc821ca 100644
--- a/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/ERP5Site_setDeliveryLinePriceZeroAndOrUpdateAppliedRule.xml
+++ b/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/ERP5Site_setDeliveryLinePriceZeroAndOrUpdateAppliedRule.xml
@@ -51,7 +51,7 @@
         <item>
             <key> <string>_body</string> </key>
             <value> <string>context.getPortalObject().portal_catalog.searchAndActivate(\n
-  portal_type=context.getPortalDeliveryMovementTypeList() + (\'Sale Order Line\',),\n
+  portal_type=context.getPortalDeliveryMovementTypeList(),\n
   method_id=\'DeliveryLineSetZeroPriceAndOrUpdateAppliedRule\'\n
 )\n
 </string> </value>
diff --git a/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/SaleOrderLine_linkSimulationMovementToPackingListLine.xml b/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/SaleOrderLine_linkSimulationMovementToPackingListLine.xml
index 82cdf99dc234c618b7ce9342e0055070b9e9c07c..f59440d913ea165cdda098619b3e6975dbe7befa 100644
--- a/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/SaleOrderLine_linkSimulationMovementToPackingListLine.xml
+++ b/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/SaleOrderLine_linkSimulationMovementToPackingListLine.xml
@@ -72,6 +72,11 @@ if delivery_simulation.getDelivery() == packing_list_line:\n
   return\n
 assert(delivery_simulation.getDelivery() is None)\n
 delivery_simulation.setDelivery(packing_list_line)\n
+delivery = packing_list_line.getParentValue()\n
+common_specialise = \'sale_trade_condition_module/vifib_trade_condition\'\n
+specialise = delivery.getSpecialise()\n
+if common_specialise != specialise:\n
+  delivery.setSpecialise(common_specialise)\n
 </string> </value>
         </item>
         <item>
diff --git a/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/SaleOrderLine_setPriceToZeroAndOrUpdateAppliedRule.xml b/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/SaleOrderLine_setPriceToZeroAndOrUpdateAppliedRule.xml
index 4fd7317f1fb2a792e5779b4e4c71b2157f482860..5d30c8985be622f748d7d4aee7a5471e73ec09d4 100644
--- a/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/SaleOrderLine_setPriceToZeroAndOrUpdateAppliedRule.xml
+++ b/master/bt5/vifib_upgrader/SkinTemplateItem/portal_skins/vifib_upgrader/SaleOrderLine_setPriceToZeroAndOrUpdateAppliedRule.xml
@@ -54,6 +54,10 @@
   raise ValueError(\'%s is not sale order line\' % context.getPath())\n
 context.setPrice(0.0)\n
 context.setQuantity(1.0)\n
+common_specialise = \'sale_trade_condition_module/vifib_trade_condition\'\n
+specialise = context.getParentValue().getSpecialise()\n
+if common_specialise != specialise:\n
+  context.getParentValue().setSpecialise(common_specialise)\n
 context.getParentValue().Delivery_updateAppliedRule()\n
 </string> </value>
         </item>
diff --git a/master/bt5/vifib_upgrader/bt/revision b/master/bt5/vifib_upgrader/bt/revision
index 7c091989d018956d085a80a955a265ebbb0d0a49..c24b6ae77df02a87472b208f251fad88382a2e55 100644
--- a/master/bt5/vifib_upgrader/bt/revision
+++ b/master/bt5/vifib_upgrader/bt/revision
@@ -1 +1 @@
-37
\ No newline at end of file
+38
\ No newline at end of file