diff --git a/filefield_track.inc b/filefield_track.inc
index bc1aef4..d8f32d1 100644
--- a/filefield_track.inc
+++ b/filefield_track.inc
@@ -24,7 +24,7 @@ function filefield_track_download_form($form, &$form_state, $fid) {
   elseif (!empty($_COOKIE['fft_auth'])) {
     list($email, $auth) = explode("|", $_COOKIE['fft_auth']);
     $result = db_query("SELECT * FROM {filefield_track} WHERE email = :email AND auth = :auth", array(':email' => $email, ':auth' => $auth));
-    $auth_obj = db_fetch_object($result);
+    $auth_obj = $result->fetchObject();
     if ($auth_obj != NULL && $auth_obj->email == $email) {
       filefield_track_log($fid, $email);
       filefield_track_get_file($fid);
@@ -43,7 +43,13 @@ function filefield_track_download_form($form, &$form_state, $fid) {
     '#type' => 'value',
     '#value' => $fid,
   );
-  $form['#redirect'] = isset($_GET['redirect']) ? $_GET['redirect'] : NULL;
+  if (isset($_GET['redirect']) && !url_is_external($_GET['redirect'])) {
+    $link = l(t('Return to the previous page'), $_GET['redirect']);
+    $form['download']['return'] = array(
+      '#type' => 'item',
+      '#markup' => '<p>' . $link . '</p>',
+    );
+  }
 
   return $form;
 }
