--- kernel/classes/ezurlaliasml.php	2011-09-01 10:50:02.619115663 +0200
+++ kernel/classes/ezurlaliasml.php	2011-09-01 11:01:05.282115453 +0200
@@ -1062,9 +1062,19 @@
         }
         $db = eZDB::instance();
         $actionList = array();
+        $initialLanguageList = array();
         foreach ( $actionValues as $i => $value )
         {
             $actionList[] = "'" . $db->escapeString( $actionName . ":" . $value ) . "'";
+            // Populate initial language list, used when no prioritized language is found
+            if ( $actionName == 'eznode' )
+            {
+                $node = eZContentObjectTreeNode::fetch( $value );
+                if ( $node instanceof eZContentObjectTreeNode )
+                {
+                    $initialLanguageList[ $actionName . ":" . $value ] = $node->object()->attribute( 'initial_language_id' );
+                }
+            }
         }
         $actionStr = join( ", ", $actionList );
         $filterSQL = trim( eZContentLanguage::languagesSQLFilter( 'ezurlalias_ml', 'lang_mask' ) );
@@ -1101,6 +1111,8 @@
             }
             $actionRows = $actionMap[$action];
             $defaultRow = null;
+            $prioritizedLanguageFound = false;
+            $initialLanguageRow = null;
             foreach( $prioritizedLanguages as $language )
             {
                 foreach ( $actionRows as $row )
@@ -1110,6 +1122,7 @@
                     if ( ( $wantedMask & $langMask ) > 0 )
                     {
                         $defaultRow = $row;
+                        $prioritizedLanguageFound = true;
                         break 2;
                     }
                     // If the 'always available' bit is set then choose it as the default
@@ -1117,8 +1130,18 @@
                     {
                         $defaultRow = $row;
                     }
+                    // Remember initial language row
+                    if ( isset( $initialLanguageList[$action] ) && ($langMask & $initialLanguageList[$action]) > 0 )
+                    {
+                        $initialLanguageRow = $row;
+                    }
                 }
             }
+            // If no prioritized language found, choose the initial language
+            if ( !$prioritizedLanguageFound && $initialLanguageRow !== null )
+            {
+                $defaultRow = $initialLanguageRow;
+            }
             if ( $defaultRow )
             {
                 $id = (int)$defaultRow['id'];
