diff --git a/plugins/default_value.inc b/plugins/default_value.inc
index 2c29a42..6ba7273 100644
--- a/plugins/default_value.inc
+++ b/plugins/default_value.inc
@@ -15,6 +15,20 @@ $plugin = array(
 
 function feeds_tamper_default_value_form($importer, $element_key, $settings) {
   $form = array();
+  $mappings = $importer->processor->config['mappings'];
+  $replace = array();
+
+  foreach ($mappings as $mapping) {
+    $replace[] = '[' . $mapping['source'] . ']';
+  }
+
+  $form['help'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Available Replacement Patterns'),
+    '#collapsed' => TRUE,
+    '#collapsible' => TRUE,
+    '#value' => theme('item_list', array('items' => $replace)),
+  );
 
   $form['default_value'] = array(
     '#type' => 'textarea',
@@ -22,9 +36,25 @@ function feeds_tamper_default_value_form($importer, $element_key, $settings) {
     '#default_value' => isset($settings['default_value']) ? $settings['default_value'] : '',
     '#description' => t('This field will be set to the value specified.'),
   );
+
+  $form['only_if_empty'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Only if empty?	'),
+    '#default_value' => isset($settings['only_if_empty']) ? $settings['only_if_empty'] : '',
+    '#description' => t('This field will be set to the value specified only if the imported field is empty.'),
+  );
   return $form;
 }
 
 function feeds_tamper_default_value_callback($source, $item_key, $element_key, &$field, $settings) {
-  $field = $settings['default_value'];
+  $trans = array();
+  $item = $source->items[$item_key];
+  foreach ($item as $key => $value) {
+    $trans['[' . $key . ']'] = $value;
+  }
+
+  // Process field unless only empty checked and not empty
+  if( !($settings['only_if_empty'] and !empty($field)) ) {
+    $field = strtr($settings['default_value'], $trans);
+  }
 }
