diff --git a/components/markup.inc b/components/markup.inc
index 522fba2..c02ed80 100644
--- a/components/markup.inc
+++ b/components/markup.inc
@@ -43,7 +43,7 @@ function _webform_edit_markup($component) {
     '#type' => 'text_format',
     '#title' => t('Value'),
     '#default_value' => $component['value'],
-    '#description' => t('Markup allows you to enter custom HTML or PHP logic into your form.') . theme('webform_token_help'),
+    '#description' => t('Markup allows you to enter custom HTML or PHP logic into your form.') . theme('webform_token_help', array('groups' => array('node', 'submission'))),
     '#weight' => -1,
     '#format' => $component['extra']['format'],
     '#element_validate' => array('_webform_edit_markup_validate'),
@@ -67,15 +67,15 @@ function _webform_edit_markup_validate($form, &$form_state) {
  */
 function _webform_render_markup($component, $value = NULL, $filter = TRUE) {
   $node = isset($component['nid']) ? node_load($component['nid']) : NULL;
-
   $element = array(
     '#type' => 'markup',
     '#title' => $filter ? NULL : $component['name'],
     '#weight' => $component['weight'],
-    '#markup' => $filter ? _webform_filter_values(check_markup($component['value'], $component['extra']['format'], '', TRUE), $node, NULL, NULL, FALSE) : $component['value'],
+    '#markup' =>  '',
     '#format' => $component['extra']['format'],
     '#theme_wrappers' => array('webform_element'),
     '#translatable' => array('title', 'markup'),
+    '#after_build' => array('_webform_markup_tokens'),
   );
 
   // TODO: Remove when #markup becomes available in D7.
@@ -85,6 +85,30 @@ function _webform_render_markup($component, $value = NULL, $filter = TRUE) {
 }
 
 /**
+ * Helper function to replace tokens in markup component.
+ */
+function _webform_markup_tokens($form_element, &$form_state){
+  global $user;
+  $submitted = (object) $form_state['storage']['submitted'];
+  $node = clone $form_state['build_info']['args'][0];
+
+  $component = $form_element['#webform_component'];
+
+  $submission = (object) array(
+    'nid' => $node->nid,
+    'uid' => $user->uid,
+    'submitted' => REQUEST_TIME,
+    'remote_addr' => ip_address(),
+    'is_draft' => TRUE,
+    'data' => webform_submission_data($node, $submitted),
+  );
+
+  $form_element['#markup'] = _webform_filter_values(check_markup($component['value'], $component['extra']['format'], '', TRUE), $node, $submission, NULL, FALSE);
+
+  return $form_element;
+}
+
+/**
  * Implements _webform_display_component().
  */
 function _webform_display_markup($component, $value, $format = 'html') {
