Index: sites/all/modules/contrib/refresh/refresh.install
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- sites/all/modules/contrib/refresh/refresh.install	(revision 5402)
+++ sites/all/modules/contrib/refresh/refresh.install	(revision )
@@ -31,6 +31,7 @@
     'fields' => array('nid' =>     array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'unsigned' => TRUE),
                       'vid' =>     array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'unsigned' => TRUE),
                       'seconds' => array('type' => 'int', 'not null' => TRUE, 'default' => 0, 'unsigned' => TRUE),
+                      'destination' => array('type' => 'varchar', 'not null' => FALSE, 'length' => 255, 'default' => ''),
                 ),
     'primary key' => array('nid', 'vid'),
   );
@@ -60,4 +61,12 @@
     }
   }
   return $requirements;
+}
+
+/**
+ * Create a destination field.
+ */
+function refresh_update_7102() {
+  $schema = drupal_get_schema('node_refresh');
+  db_add_field('node_refresh', 'destination', $schema['fields']['destination']);
 }
Index: sites/all/modules/contrib/refresh/refresh.module
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- sites/all/modules/contrib/refresh/refresh.module	(revision 5402)
+++ sites/all/modules/contrib/refresh/refresh.module	(revision )
@@ -28,12 +28,17 @@
  * Adds a refresh group and numeric edit field to the node editing form.
  */
 function refresh_form_node_form_alter(&$form, $form_state) {
+  $refresh = '';
+  $destination = '';
+
   if (isset($form['#node']->refresh)) {
     $refresh = $form['#node']->refresh;
   }
-  else {
-    $refresh = '';
+
+  if (isset($form['#node']->destination)) {
+    $destination =  $form['#node']->destination;
   }
+
   $form['refresh'] = array(
     '#type' => 'fieldset',
     '#title' => t('Refresh settings'),
@@ -50,29 +55,39 @@
     ),
   );
   $form['refresh']['refresh'] = array(
+    '#title' => t('Duration in seconds'),
     '#type' => 'textfield',
     '#default_value' => $refresh,
     '#maxlength' => 3,
     '#size' => 10,
-    '#collapsible' => TRUE,
-    '#collapsed' => TRUE,
     '#description' => t('Optionally provide a number of seconds after which the node page refreshes.'),
   );
+
+  $form['refresh']['destination'] = array(
+    '#title' => t('Destination URL'),
+    '#type' => 'textfield',
+    '#default_value' => $destination,
+    '#description' => t('Optionally provide a full url to a destination, if no url is given it will refresh to the current node.'),
+  );
 }
 
 /**
  * Implements hook_node_view.
  * Add a refresh tag when viewing the node by itself, not as a teaser.
  */
-function refresh_node_view($node, $view_mode)
-{
+function refresh_node_view($node, $view_mode) {
-// TODO: add check for editing nodes using overlay
+  // TODO: add check for editing nodes using overlay
   if (($view_mode == 'full') && node_is_page($node) && ($node->refresh > 0)) {
+    $content = check_plain($node->refresh);
+    if (!empty($node->destination)) {
+      $content .= '; URL=' . $node->destination;
+    }
+
     $element = array(
       '#tag' => 'meta',
       '#attributes' => array(
         'http-equiv' => 'refresh',
-        'content' => check_plain($node->refresh),
+        'content' => $content,
       ),
     );
     drupal_add_html_head($element, 'refresh');
@@ -84,8 +99,9 @@
  */
 function refresh_node_load($nodes, $types) {
   foreach ($nodes as $nid => $node) {
-    $result = db_query("SELECT seconds FROM {node_refresh} WHERE nid = :nid AND vid = :vid", array('nid' => $node->nid, 'vid' => $node->vid));    
-    $nodes[$nid]->refresh = $result->fetchField();
+    $result = db_query("SELECT seconds, destination FROM {node_refresh} WHERE nid = :nid AND vid = :vid", array('nid' => $node->nid, 'vid' => $node->vid))->fetchAssoc();
+    $nodes[$nid]->refresh = $result['seconds'];
+    $nodes[$nid]->destination = $result['destination'];
   }
 }
 
@@ -116,7 +132,7 @@
 function refresh_node_insert($node) {
   if (user_access('create refreshes') || user_access('administer refreshes')) {
     if ((int) $node->refresh > 0) {
-      db_query("INSERT INTO {node_refresh} (nid, vid, seconds) VALUES (:nid, :vid, :seconds)", array('nid' => $node->nid, 'vid' => $node->vid, 'seconds' => (int) $node->refresh));
+      db_query("INSERT INTO {node_refresh} (nid, vid, seconds, destination) VALUES (:nid, :vid, :seconds, :destination)", array('nid' => $node->nid, 'vid' => $node->vid, 'seconds' => (int) $node->refresh, 'destination' => $node->destination));
     }
   }
 }
@@ -128,7 +144,7 @@
   if (user_access('create refreshes') || user_access('administer refreshes')) {
     db_query("DELETE FROM {node_refresh} WHERE nid = :nid AND vid = :vid", array('nid' => $node->nid, 'vid' => $node->vid));    
     if ((int) $node->refresh > 0) {
-      db_query("INSERT INTO {node_refresh} (nid, vid, seconds) VALUES (:nid, :vid, :seconds)", array('nid' => $node->nid, 'vid' => $node->vid, 'seconds' => (int) $node->refresh));
+      db_query("INSERT INTO {node_refresh} (nid, vid, seconds, destination) VALUES (:nid, :vid, :seconds, :destination)", array('nid' => $node->nid, 'vid' => $node->vid, 'seconds' => (int) $node->refresh, 'destination' => $node->destination));
     }
   }
 }
