diff --git a/redirect.admin.inc b/redirect.admin.inc
index 990a22a..a96b018 100644
--- a/redirect.admin.inc
+++ b/redirect.admin.inc
@@ -482,7 +482,8 @@ function redirect_element_validate_redirect($element, &$form_state) {
 
 
   // Normalize the path.
-  $value = drupal_get_normal_path($value, $form_state['values']['language']);
+  // Decode the URL to avoid double encoding when Drupal encodes page/file for delivery
+  $value = urldecode(drupal_get_normal_path($value, $form_state['values']['language']));
 
   if (!valid_url($value) && !valid_url($value, TRUE) && $value != '<front>' && $value != '' && !file_exists($value)) {
     form_error($element, t('The redirect path %value is not valid.', array('%value' => $value)));
