diff --git a/addons/sale_timesheet/models/project.py b/addons/sale_timesheet/models/project.py
index a54f1eaa034fd318645675aabc7dfa382c5d1f02..09475410a900ffbbdba438e013035143e9825a89 100644
--- a/addons/sale_timesheet/models/project.py
+++ b/addons/sale_timesheet/models/project.py
@@ -58,8 +58,19 @@ class ProjectTask(models.Model):
 
     sale_line_id = fields.Many2one('sale.order.line', 'Sales Order Item', domain="[('is_service', '=', True), ('order_partner_id', '=', partner_id)]")
 
+    @api.model
+    def create(self, values):
+        # sub task has the same so line than their parent
+        if 'parent_id' in values:
+            values['sale_line_id'] = self.env['project.task'].browse(values['parent_id']).sudo().sale_line_id.id
+        return super(ProjectTask, self).create(values)
+
     @api.multi
     def write(self, values):
+        # sub task has the same so line than their parent
+        if 'parent_id' in values:
+            values['sale_line_id'] = self.env['project.task'].browse(values['parent_id']).sudo().sale_line_id.id
+
         result = super(ProjectTask, self).write(values)
         # reassign SO line on related timesheet lines
         if 'sale_line_id' in values:
diff --git a/addons/sale_timesheet/views/project_task_views.xml b/addons/sale_timesheet/views/project_task_views.xml
index d952910d6069e245566b699ceef309675c86be70..1458e35dc40cf28179c771434c1fe7b03c304051 100644
--- a/addons/sale_timesheet/views/project_task_views.xml
+++ b/addons/sale_timesheet/views/project_task_views.xml
@@ -29,7 +29,7 @@
                             string="Sales Order"/>
                 </xpath>
                 <field name="user_id" position="after">
-                    <field name="sale_line_id" string="Sales Order Item" attrs="{'invisible': [('partner_id', '=', False)]}" options='{"no_open": True, "no_create": True}' context="{'sale_show_order_product_name': True}"/>
+                    <field name="sale_line_id" string="Sales Order Item" attrs="{'invisible': [('partner_id', '=', False)], 'readonly': [('parent_id', '!=', False)]}" options='{"no_open": True, "no_create": True}' context="{'sale_show_order_product_name': True}"/>
                 </field>
             </field>
         </record>