diff --git a/redirect.module b/redirect.module
index 26e78bc..e135ee1 100644
--- a/redirect.module
+++ b/redirect.module
@@ -328,7 +328,11 @@ function redirect_path_update(array $path) {
     $redirect->source = $path['original']['alias'];
     $redirect->redirect = $path['source'];
     $redirect->language = $path['original']['language'];
-    redirect_save($redirect);
+    // Check if the redirect exists before saving.
+    $hash = redirect_hash($redirect);
+    if (!redirect_loady_by_hash($hash)) {
+      redirect_save($redirect);
+    }
   }
 }
 
