diff --git a/product/CMFActivity/ActivityTool.py b/product/CMFActivity/ActivityTool.py
index 7935adad1b2b89287e63f12b0148b63519d3f697..8df8dc71ec1e52242774eef021c2dc2ae72136e1 100644
--- a/product/CMFActivity/ActivityTool.py
+++ b/product/CMFActivity/ActivityTool.py
@@ -506,6 +506,7 @@ class ActivityTool (Folder, UniqueObject):
     activity_creation_trace = False
     activity_tracking = False
     activity_timing_log = False
+    cancel_and_invoke_links_hidden = False
 
     def SQLDict_setPriority(self, **kw):
       real_SQLDict_setPriority = getattr(self.aq_parent, 'SQLDict_setPriority')
@@ -655,6 +656,30 @@ class ActivityTool (Folder, UniqueObject):
           url += urllib.quote('Activity creation trace disabled')
           RESPONSE.redirect(url)
 
+    security.declareProtected(Permissions.manage_properties, 'isCancelAndInvokeLinksHidden')
+    def isCancelAndInvokeLinksHidden(self):
+      return self.cancel_and_invoke_links_hidden
+
+    security.declareProtected(Permissions.manage_properties, 'manage_hideCancelAndInvokeLinks')
+    def manage_hideCancelAndInvokeLinks(self, REQUEST=None, RESPONSE=None):
+        """
+        """
+        self.cancel_and_invoke_links_hidden = True
+        if RESPONSE is not None:
+          url = '%s/manageActivitiesAdvanced?manage_tabs_message=' % self.absolute_url()
+          url += urllib.quote('Cancel and invoke links hidden')
+          RESPONSE.redirect(url)
+
+    security.declareProtected(Permissions.manage_properties, 'manage_showCancelAndInvokeLinks')
+    def manage_showCancelAndInvokeLinks(self, REQUEST=None, RESPONSE=None):
+        """
+        """
+        self.cancel_and_invoke_links_hidden = False
+        if RESPONSE is not None:
+          url = '%s/manageActivitiesAdvanced?manage_tabs_message=' % self.absolute_url()
+          url += urllib.quote('Cancel and invoke links visible')
+          RESPONSE.redirect(url)
+
     def manage_beforeDelete(self, item, container):
         self.unsubscribe()
         Folder.inheritedAttribute('manage_beforeDelete')(self, item, container)
diff --git a/product/CMFActivity/dtml/manageActivities.dtml b/product/CMFActivity/dtml/manageActivities.dtml
index 8ecec9ef91aff7c8d7d076b1f047e5a5ec317f9d..67be1f9f92439bdd54c3da17fa3cb3661ff356b1 100644
--- a/product/CMFActivity/dtml/manageActivities.dtml
+++ b/product/CMFActivity/dtml/manageActivities.dtml
@@ -30,8 +30,18 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 <dtml-var manage_tabs>
 
 <h3>Queued Activities</h3>
+
+<dtml-let show_cancel_and_invoke_links="not isCancelAndInvokeLinksHidden()">
+<dtml-if show_cancel_and_invoke_links>
+  <p>Warning: Invoking or canceling activities will invoke/cancel all activities with both the same path and the same method_id.</p>
+  <p>Warning: Invoking an activity will <b>not</b> run any dependency check.</p>
+</dtml-if>
+
 <table cellspacing="0" cellpadding="2" border="1">
   <tr>
+    <dtml-if show_cancel_and_invoke_links>
+      <th align="left" valign="top"></th>
+    </dtml-if>
     <th align="left" valign="top">Uid</th>
     <th align="left" valign="top">Object</th>
     <th align="left" valign="top">Method Id</th>
@@ -44,9 +54,16 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
     <th align="left" valign="top">Call traceback</th>
   </tr>
   <dtml-in expr="getMessageList(include_processing=1)">
+    <dtml-let path="'/'.join(object_path)">
       <tr>
+        <dtml-if show_cancel_and_invoke_links>
+          <td align="left" valign="top">
+            <a href="manageCancel?object_path=&dtml-path;&amp;method_id=&dtml-method_id;">Cancel</a>
+            <a href="manageInvoke?object_path=&dtml-path;&amp;method_id=&dtml-method_id;">Invoke</a>
+          </td>
+        </dtml-if>
         <td align="left" valign="top"><dtml-var uid></td>
-        <td align="left" valign="top"><a href="<dtml-var "'/'.join(object_path)">"><dtml-var "'/'.join(object_path)"></a></td>
+        <td align="left" valign="top"><a href="&dtml-path;"><dtml-var path></a></td>
         <td align="left" valign="top"><dtml-var method_id></td>
         <td align="left" valign="top">
           <dtml-if activity_kw><dtml-var expr="_.repr(activity_kw)[1:-1]" html_quote>
@@ -76,8 +93,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
           </dtml-if>
         </td>
       </tr>
+    </dtml-let>
   </dtml-in>
 </table>
-
+</dtml-let>
 
 <dtml-var manage_page_footer>
diff --git a/product/CMFActivity/dtml/manageActivitiesAdvanced.dtml b/product/CMFActivity/dtml/manageActivitiesAdvanced.dtml
index 4a49bea44b4a352e5669c2823cc125e13ade27dc..0e91be072d79eaa02d830ad46f9693482d66a749 100644
--- a/product/CMFActivity/dtml/manageActivitiesAdvanced.dtml
+++ b/product/CMFActivity/dtml/manageActivitiesAdvanced.dtml
@@ -2,7 +2,7 @@
 <dtml-var manage_tabs>
 
 <br />
-<form action="<dtml-var URL1>">
+<form action="&dtml-URL1;">
 <table width="100%" cellspacing="0" cellpadding="2" border="0">
 <tr class="section-bar">
   <td colspan="3" align="left">
@@ -60,7 +60,7 @@
     </dtml-if>
   </td>
   <td>
-    <p class="form-help">Controls wether activities should contain a stack trace from their creation.
+    <p class="form-help">Controls whether activities should contain a stack trace from their creation.
     It helps finding out where an activity comes from.
     Those traces are logged and mailed when an activity fails (as part of regular activity failure mails).</p>
   </td>
@@ -80,23 +80,37 @@
   <p class="form-help">Recreate activity tables, preserving existing messages.</p>
   </td>
   <td align="right" valign="top">
-<form action="<dtml-var URL1>">
+<form action="&dtml-URL1;">
 <input class="form-element" type="submit"
  name="manageClearActivities:method" value=" Recreate Tables ">
 </form>
   </td>
 </tr>
 <tr>
-  <td>
+  <td align="left" valign="top">
   <p class="form-help">Recreate activity tables, throwing away all contained messages.</p>
   </td>
   <td align="right" valign="top">
-  <form action="<dtml-var URL1>">
+  <form action="&dtml-URL1;">
 <input type="hidden" name="keep:int" value="0">
 <input class="form-element" type="submit"
  name="manageClearActivities:method" value=" Clear Activities " style="background-color: #F00">
 </form>
-
+  </td>
+</tr>
+<tr>
+  <td align="left" valign="top">
+    <p class="form-help">Controls the visibility of links to cancel or invoke activities from "Activities" tab.
+    These links are too dangerous in production environment and they must not be visible.</p>
+  </td>
+  <td align="right" valign="top">
+    <form action="&dtml-URL1;">
+      <dtml-if isCancelAndInvokeLinksHidden>
+      <input class="form-element" type="submit" name="manage_showCancelAndInvokeLinks:method" value="Show Links" style="background-color: #F00">
+      <dtml-else>
+      <input class="form-element" type="submit" name="manage_hideCancelAndInvokeLinks:method" value="Hide Links">
+      </dtml-if>
+    </form>
   </td>
 </tr>
 </table>