Index: kernel/classes/webdav/ezwebdavcontentserver.php
===================================================================
--- kernel/classes/webdav/ezwebdavcontentserver.php	(revision 19805)
+++ kernel/classes/webdav/ezwebdavcontentserver.php	(working copy)
@@ -1087,13 +1087,24 @@
         }
 
         // Attempt to translate the URL to something like "/content/view/full/84".
-        $translateResult = eZURLAliasML::translate( $nodePathString );
-
-        if ( !$translateResult )
+        do
         {
-            $this->appendLogEntry( "Node translation failed: $nodePathString", 'CS:fetchNodeByTranslation' );
-        }
+            $urlTranslated = true;
+            $translateResult = eZURLAliasML::translate( $nodePathString );
 
+            if ( !$translateResult )
+            {
+                $this->appendLogEntry( "Node translation failed: $nodePathString", 'CS:fetchNodeByTranslation' );
+            }
+            else if ( $nodePathString === 'error/301' )
+            {
+                // the node was moved, but still exists.
+                // Try 'tranlsate' with node's new location.
+                $nodePathString = $translateResult;
+                $urlTranslated = false;
+            }
+        }while( !$urlTranslated );
+
         // Get the ID of the node (which is the last part of the translated path).
         if ( preg_match( "#^content/view/full/([0-9]+)$#", $nodePathString, $matches ) )
         {
