Issue 139: merge should use last key in map
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index c1974d5..a180a2a 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -7,6 +7,9 @@
     </properties>
     <body>
         <release version="1.10-SNAPSHOT" date="in Mercurial" description="Development">
+             <action dev="maslovalex" type="fix">
+                Fix issue 139: merge should use last key in map (2012-01-24)
+             </action>
              <action dev="py4fun" type="fix">
                 Fix issue 136: tabs are allowed in plain scalars. This is a deviation from PyYAML (2012-01-11)
              </action>
diff --git a/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java b/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java
index 2911380..f64e4c7 100644
--- a/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java
+++ b/src/main/java/org/yaml/snakeyaml/constructor/SafeConstructor.java
@@ -18,6 +18,7 @@
 import java.math.BigInteger;
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashMap;
@@ -89,6 +90,8 @@
     private List<NodeTuple> mergeNode(MappingNode node, boolean isPreffered,
             Map<Object, Integer> key2index, List<NodeTuple> values) {
         List<NodeTuple> nodeValue = node.getValue();
+        // reversed for http://code.google.com/p/snakeyaml/issues/detail?id=139
+        Collections.reverse(nodeValue);
         for (Iterator<NodeTuple> iter = nodeValue.iterator(); iter.hasNext();) {
             final NodeTuple nodeTuple = iter.next();
             final Node keyNode = nodeTuple.getKeyNode();