diff --git a/addons/delivery/sale.py b/addons/delivery/sale.py
index 4ef3224fc3e93b7bead29ddcdd90396cc7027c9c..a7e8b5d3716bb5f71752edc5c36cd2dd5a64cb55 100644
--- a/addons/delivery/sale.py
+++ b/addons/delivery/sale.py
@@ -53,10 +53,6 @@ class sale_order(osv.Model):
                 result['value']['carrier_id'] = dtype
         return result
 
-    def _prepare_order_picking(self, cr, uid, order, context=None):
-        result = super(sale_order, self)._prepare_order_picking(cr, uid, order, context=context)
-        result.update(carrier_id=order.carrier_id.id)
-        return result
 
     def _delivery_unset(self, cr, uid, ids, context=None):
         sale_obj = self.pool['sale.order.line']
@@ -92,4 +88,4 @@ class sale_order(osv.Model):
                 'price_unit': grid_obj.get_price(cr, uid, grid.id, order, time.strftime('%Y-%m-%d'), context),
                 'tax_id': [(6, 0, taxes_ids)],
                 'is_delivery': True
-            })
+            })
\ No newline at end of file
diff --git a/addons/delivery/stock.py b/addons/delivery/stock.py
index 7bfd52df4201bbaaee114ea96a71db186447e344..33f17f4e3dcc8f6a1553529dc02ea6e7b63b5397 100644
--- a/addons/delivery/stock.py
+++ b/addons/delivery/stock.py
@@ -170,6 +170,15 @@ class stock_move(osv.osv):
         'weight_uom_id': fields.many2one('product.uom', 'Unit of Measure', required=True,readonly="1",help="Unit of Measure (Unit of Measure) is the unit of measurement for Weight",),
         }
 
+    def action_confirm(self, cr, uid, ids, context=None):
+        res = super(stock_move, self).action_confirm(cr, uid, ids, context=context)
+        pick_obj = self.pool.get("stock.picking")
+        for move in self.browse(cr, uid, ids, context=context):
+            if move.picking_id and move.procurement_id and move.procurement_id.sale_line_id and not move.picking_id.carrier_id :
+                pick_obj.write(cr, uid, [move.picking_id.id], {'carrier_id': move.procurement_id.sale_line_id.order_id.carrier_id.id}, context=context)
+        return res
+
+
     def _get_default_uom(self, cr, uid, context=None):
         uom_categ_id = self.pool.get('ir.model.data').xmlid_to_res_id(cr, uid, 'product.product_uom_categ_kgm')
         return self.pool.get('product.uom').search(cr, uid, [('category_id', '=', uom_categ_id),('factor','=',1)])[0]
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index b87061696e49fac766ec30888d9b7b0283fdf6fc..bec11639a86bb75922db945d6370486f9c81c9ea 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -149,8 +149,20 @@ class purchase_order(osv.osv):
         return res and res[0] or False  
 
     def _get_picking_in(self, cr, uid, context=None):
+
         obj_data = self.pool.get('ir.model.data')
-        return obj_data.get_object_reference(cr, uid, 'stock','picking_type_in') and obj_data.get_object_reference(cr, uid, 'stock','picking_type_in')[1] or False
+        type_obj = self.pool.get('stock.picking.type')
+        user_obj = self.pool.get('res.users')
+        company_id = user_obj.browse(cr, uid, uid, context=context).company_id.id
+        pick_type = obj_data.get_object_reference(cr, uid, 'stock', 'picking_type_in') and obj_data.get_object_reference(cr, uid, 'stock', 'picking_type_in')[1] or False
+        if pick_type:
+            type = type_obj.browse(cr, uid, pick_type, context=context)
+            if type and type.warehouse_id and type.warehouse_id.company_id.id == company_id:
+                return pick_type
+        types = type_obj.search(cr, uid, [('code', '=', 'incoming')], context=context)
+        if not types:
+            raise osv.except_osv(_('Error!'), _("Make sure you have at least an incoming picking type defined"))
+        return types[0]
 
     def _get_picking_ids(self, cr, uid, ids, field_names, args, context=None):
         res = {}
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index 2273a889aafab91a0a4a9fb598ddc40822e825a7..30cec292af8a02a4801159daac0bacc8e366ed7b 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -712,10 +712,11 @@ class sale_order(osv.osv):
                     line.refresh()
                     #run again procurement that are in exception in order to trigger another move
                     proc_ids += [x.id for x in line.procurement_ids if x.state in ('exception', 'cancel')]
+                    procurement_obj.reset_to_confirmed(cr, uid, proc_ids, context=context)
                 elif sale_line_obj.need_procurement(cr, uid, [line.id], context=context):
                     if (line.state == 'done') or not line.product_id:
                         continue
-                    vals = self._prepare_order_line_procurement(cr, uid, order, line, group_id=group_id, context=context)
+                    vals = self._prepare_order_line_procurement(cr, uid, order, line, group_id=order.procurement_group_id.id, context=context)
                     proc_id = procurement_obj.create(cr, uid, vals, context=context)
                     proc_ids.append(proc_id)
             #Confirm procurement order such that rules will be applied on it
diff --git a/addons/sale_journal/__openerp__.py b/addons/sale_journal/__openerp__.py
index 5c03c562033d687222c944f7d8f378e09bfdf220..643dc687441bd0ef3e996e7b3ecc1fb601449ddf 100644
--- a/addons/sale_journal/__openerp__.py
+++ b/addons/sale_journal/__openerp__.py
@@ -59,7 +59,7 @@ Some statistics by journals are provided.
     ],
     'demo': ['sale_journal_demo.xml'],
     'test': [ ],
-    'installable': True,
+    'installable': False,
     'auto_install': False,
 }
 # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale_stock/sale_stock_view.xml b/addons/sale_stock/sale_stock_view.xml
index 0d5223a03c88a46917ce380a1eed9fd11db1263b..404316324f5d89ef896d4829307e32a07eb10407 100644
--- a/addons/sale_stock/sale_stock_view.xml
+++ b/addons/sale_stock/sale_stock_view.xml
@@ -38,17 +38,11 @@
                    <xpath expr="//field[@name='order_line']/tree//field[@name='product_uom_qty']" position="replace">
                        <field context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'uom':product_uom}"
                              name="product_uom_qty" 
-                       on_change="product_id_change_with_wh(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, False, parent.date_order, product_packaging, parent.fiscal_position, True, parent.warehouse_id, context)"/>
-                   </xpath>
-                   <xpath expr="//field[@name='order_line']/form//field[@name='product_id']" position="replace">
-                       <field name="product_id"
-                       context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'uom':product_uom}"
-                       groups="base.group_user" 
-                       on_change="product_id_change_with_wh(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, True, parent.date_order, product_packaging, parent.fiscal_position, False, parent.warehouse_id, context)"/>
+                       on_change="product_id_change_with_wh(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,False,name,parent.partner_id, False, False, parent.date_order, product_packaging, parent.fiscal_position, True, parent.warehouse_id, context)"/>
                    </xpath>
-                   <xpath expr="//field[@name='order_line']/form//field[@name='product_uom_qty']" position="replace">
-                       <field context="{'partner_id':parent.partner_id, 'quantity':product_uom_qty, 'pricelist':parent.pricelist_id, 'uom':product_uom}"
-                             name="product_uom_qty" class="oe_inline"
+                   <xpath expr="//field[@name='order_line']/form//field[@name='product_uos_qty']" position="replace">
+                       <field context="{'partner_id':parent.partner_id, 'quantity':product_uos_qty, 'pricelist':parent.pricelist_id, 'uom':product_uom}"
+                             name="product_uos_qty" class="oe_inline"
                        on_change="product_id_change_with_wh(parent.pricelist_id,product_id,product_uom_qty,product_uom,product_uos_qty,product_uos,name,parent.partner_id, False, False, parent.date_order, product_packaging, parent.fiscal_position, True, parent.warehouse_id, context)"/>
                    </xpath>
 
diff --git a/addons/stock/wizard/stock_transfer_details.py b/addons/stock/wizard/stock_transfer_details.py
index 831f225ca13b203076e22eb9c016ff09c539dfb6..17f302f6317749a08e84f60995cba19014e63bea 100644
--- a/addons/stock/wizard/stock_transfer_details.py
+++ b/addons/stock/wizard/stock_transfer_details.py
@@ -133,7 +133,7 @@ class stock_transfer_details_items(models.TransientModel):
     packop_id = fields.Many2one('stock.pack.operation', 'Operation')
     product_id = fields.Many2one('product.product', 'Product')
     product_uom_id = fields.Many2one('product.uom', 'Product Unit of Measure')
-    quantity = fields.Float('Quantity', digits_compute=dp.get_precision('Product Unit of Measure'), default = 1.0)
+    quantity = fields.Float('Quantity', digits=dp.get_precision('Product Unit of Measure'), default = 1.0)
     package_id = fields.Many2one('stock.quant.package', 'Source package', domain="['|', ('location_id', 'child_of', sourceloc_id), ('location_id','=',False)]")
     lot_id = fields.Many2one('stock.production.lot', 'Lot/Serial Number')
     sourceloc_id = fields.Many2one('stock.location', 'Source Location', required=True)