diff --git a/CRM/Civirules/Form/Rule.php b/CRM/Civirules/Form/Rule.php
index b543aa7c745baed979455d6c3afe159af11aadcf..d0fe927f4c9821b34e70de2e09fc2469bfdcaabc 100755
--- a/CRM/Civirules/Form/Rule.php
+++ b/CRM/Civirules/Form/Rule.php
@@ -362,6 +362,10 @@ class CRM_Civirules_Form_Rule extends CRM_Core_Form {
   protected function setRuleActionActions($ruleActionId, CRM_Civirules_Action $action) {
     $actionActions = array();
 
+    $delaySettingsUrl = CRM_Utils_System::url('civicrm/civirule/form/rule_action', 'reset=1&action=update&rid='
+      .$this->ruleId.'&id='.$ruleActionId);
+    $actionActions[] = '<a class="action-item" title="Edit delay settings" href="'.$delaySettingsUrl.'">'.ts('Edit delay').'</a>';
+
     $editUrl = $action->getExtraDataInputUrl($ruleActionId);
     if (!empty($editUrl)) {
       $actionActions[] = '<a class="action-item" title="Edit" href="'.$editUrl.'">'.ts('Edit').'</a>';
diff --git a/CRM/Civirules/Form/RuleAction.php b/CRM/Civirules/Form/RuleAction.php
index fef324c6fff914cb20164f2d59869abb20d7b7d3..619aed3b641cb879ed942850c3c48c5bd5f42642 100644
--- a/CRM/Civirules/Form/RuleAction.php
+++ b/CRM/Civirules/Form/RuleAction.php
@@ -13,6 +13,12 @@ class CRM_Civirules_Form_RuleAction extends CRM_Core_Form {
 
   protected $ruleId = NULL;
 
+  protected $ruleActionId;
+
+  protected $ruleAction;
+
+  protected $action;
+
   /**
    * Function to buildQuickForm (extends parent function)
    *
@@ -31,6 +37,24 @@ class CRM_Civirules_Form_RuleAction extends CRM_Core_Form {
    */
   function preProcess() {
     $this->ruleId = CRM_Utils_Request::retrieve('rid', 'Integer');
+    $this->ruleActionId = CRM_Utils_Request::retrieve('id', 'Integer');
+
+    if ($this->ruleActionId) {
+      $this->ruleAction = new CRM_Civirules_BAO_RuleAction();
+      $this->ruleAction->id = $this->ruleActionId;
+      if (!$this->ruleAction->find(true)) {
+        throw new Exception('Civirules could not find ruleAction');
+      }
+
+      $this->action = new CRM_Civirules_BAO_Action();
+      $this->action->id = $this->ruleAction->action_id;
+      if (!$this->action->find(true)) {
+        throw new Exception('Civirules could not find action');
+      }
+
+      $this->assign('action_label', $this->action->label);
+    }
+
     $redirectUrl = CRM_Utils_System::url('civicrm/civirule/form/rule', 'action=update&id='.$this->ruleId, TRUE);
     $session = CRM_Core_Session::singleton();
     $session->pushUserContext($redirectUrl);
@@ -53,6 +77,9 @@ class CRM_Civirules_Form_RuleAction extends CRM_Core_Form {
       'action_id' => $this->_submitValues['rule_action_select'],
       'delay' => 'null',
     );
+    if ($this->ruleActionId) {
+      $saveParams['id'] = $this->ruleActionId;
+    }
 
     if (!empty($this->_submitValues['delay_select'])) {
       $delayClass = CRM_Civirules_Delay_Factory::getDelayClassByName($this->_submitValues['delay_select']);
@@ -68,7 +95,7 @@ class CRM_Civirules_Form_RuleAction extends CRM_Core_Form {
 
     $action = CRM_Civirules_BAO_Action::getActionObjectById($ruleAction['action_id'], true);
     $redirectUrl = $action->getExtraDataInputUrl($ruleAction['id']);
-    if (empty($redirectUrl)) {
+    if (empty($redirectUrl) || $this->ruleActionId) {
       $redirectUrl = CRM_Utils_System::url('civicrm/civirule/form/rule', 'action=update&id=' . $this->_submitValues['rule_id'], TRUE);
     }
 
@@ -82,9 +109,16 @@ class CRM_Civirules_Form_RuleAction extends CRM_Core_Form {
    */
   protected function createFormElements() {
     $this->add('hidden', 'rule_id');
+    if ($this->ruleActionId) {
+      $this->add('hidden', 'id');
+    }
     $actionList = array(' - select - ') + CRM_Civirules_Utils::buildActionList();
     asort($actionList);
-    $this->add('select', 'rule_action_select', ts('Select Action'), $actionList);
+    $attributes = array();
+    if (!empty($this->ruleActionId)) {
+      $this->add('select', 'rule_action_select', ts('Select Action'), $actionList, $attributes);
+    }
+
 
     $delayList = array(' - No Delay - ') + CRM_Civirules_Delay_Factory::getOptionList();
     $this->add('select', 'delay_select', ts('Delay action to'), $delayList);
@@ -105,6 +139,16 @@ class CRM_Civirules_Form_RuleAction extends CRM_Core_Form {
       $delay_class->setDefaultValues($defaults);
     }
 
+    if (!empty($this->ruleActionId)) {
+      $defaults['rule_action_select'] = $this->ruleActionId;
+      $defaults['id'] = $this->ruleActionId;
+
+      $delayClass = unserialize($this->ruleAction->delay);
+      if ($delayClass) {
+        $defaults['delay_select'] = get_class($delayClass);
+      }
+    }
+
     return $defaults;
   }
 
@@ -125,7 +169,12 @@ class CRM_Civirules_Form_RuleAction extends CRM_Core_Form {
    * @access public
    */
   public function addRules() {
-    $this->addFormRule(array('CRM_Civirules_Form_RuleAction', 'validateRuleAction'));
+    if (empty($this->ruleActionId)) {
+      $this->addFormRule(array(
+        'CRM_Civirules_Form_RuleAction',
+        'validateRuleAction'
+      ));
+    }
   }
 
   /**
diff --git a/templates/CRM/Civirules/Form/RuleAction.tpl b/templates/CRM/Civirules/Form/RuleAction.tpl
index 720abcc8d5ea5fb84ad9153f6ccd605d056ef94e..a923490b5e7f718e101ee194d6493f852c7f3978 100644
--- a/templates/CRM/Civirules/Form/RuleAction.tpl
+++ b/templates/CRM/Civirules/Form/RuleAction.tpl
@@ -1,11 +1,19 @@
 {* block for rule condition data *}
 <h3>{$ruleActionHeader}</h3>
 <div class="crm-block crm-form-block crm-civirule-rule_action-block">
-  <div class="crm-section">
-    <div class="label">{$form.rule_action_select.label}</div>
-    <div class="content">{$form.rule_action_select.html}</div>
-    <div class="clear"></div>
-  </div>
+    {if (!empty($action_label))}
+        <div class="crm-section">
+            <div class="label"></div>
+            <div class="content">{$action_label}</div>
+            <div class="clear"></div>
+        </div>
+    {else}
+        <div class="crm-section">
+            <div class="label">{$form.rule_action_select.label}</div>
+            <div class="content">{$form.rule_action_select.html}</div>
+            <div class="clear"></div>
+        </div>
+    {/if}
 </div>
 <h3>{ts}Delay action{/ts}</h3>
 <div class="crm-block crm-form-block crm-civirule-rule_action_delay-block">