diff --git a/prospect_trace.py b/prospect_trace.py
index 591a3d8..3f683b4 100644
--- a/prospect_trace.py
+++ b/prospect_trace.py
@@ -60,7 +60,13 @@ class ProspectTrace(ModelSQL, ModelView):
             },
             'wizard_make_call': {},
             'close_trace': {
-                'invisible': Eval('state') == 'closed'
+                'invisible': Eval('state') == 'closed',
+                'depends': ['state']
+            },
+            'reopen_trace': {
+                'invisible': Eval('state') == 'open'
+                or Eval('state') == 'with_pending_calls',
+                'depends': ['state']
             }
         })
 
@@ -87,6 +93,13 @@ class ProspectTrace(ModelSQL, ModelView):
             prospect_trace.state = 'closed'
             prospect_trace.save()
 
+    @classmethod
+    @ModelView.button
+    def reopen_trace(cls, prospect_traces):
+        for prospect_trace in prospect_traces:
+            prospect_trace.state = 'open'
+            prospect_trace.save()
+
     def get_rec_name(self, name):
         if self.prospect:
             return '[' + str(self.id) + '] ' + self.prospect.name
diff --git a/prospect_trace.xml b/prospect_trace.xml
index 1c53a35..b3d769d 100644
--- a/prospect_trace.xml
+++ b/prospect_trace.xml
@@ -102,5 +102,11 @@ this repository contains the full copyright notices and license terms. -->
             <field name="string">Close trace</field>
             <field name="model" search="[('model', '=', 'sale.prospect_trace')]"/>
         </record>
+
+        <record model="ir.model.button" id="reopen_trace_button">
+            <field name="name">reopen_trace</field>
+            <field name="string">Reopen trace</field>
+            <field name="model" search="[('model', '=', 'sale.prospect_trace')]"/>
+        </record>
     </data>
 </tryton>
\ No newline at end of file
diff --git a/tests/scenario_sale_opportunity_management.rst b/tests/scenario_sale_opportunity_management.rst
index 869b0ba..153d8d0 100644
--- a/tests/scenario_sale_opportunity_management.rst
+++ b/tests/scenario_sale_opportunity_management.rst
@@ -275,6 +275,11 @@ Hacer llamada y cerrar venta (Seguimiento de prospecto)::
     >>> prospect_trace.state
     'closed'
 
+Reabrir seguimiento a prospecto una vez cerrado::
+    >>> prospect_trace.click('reopen_trace')
+    >>> prospect_trace.state
+    'open'
+
 Reasignar prospectos por operador::
     >>> operator2 = User();
     >>> operator2.name = 'Operatus'