diff --git a/src/semantic_tree/semantic_tree.js b/src/semantic_tree/semantic_tree.js
index <HASH>..<HASH> 100644
--- a/src/semantic_tree/semantic_tree.js
+++ b/src/semantic_tree/semantic_tree.js
@@ -1028,11 +1028,16 @@ sre.SemanticTree.prototype.processRelationsInRow_ = function(nodes) {
   var children = partition.comp.map(
       goog.bind(this.processOperationsInRow_, this));
   if (partition.rel.some(
-    function(x) {return x.role !== firstRel.role;})) {
-    return this.makeBranchNode_(
+      function(x) {return !x.equals(firstRel);})) {
+    var node = this.makeBranchNode_(
         sre.SemanticAttr.Type.MULTIREL, children, partition.rel);
+    if (partition.rel.every(
+        function(x) {return x.role === firstRel.role;})) {
+      node.role = firstRel.role;
+    }
+    return node;
   }
-  var node = this.makeBranchNode_(sre.SemanticAttr.Type.RELSEQ,
+  node = this.makeBranchNode_(sre.SemanticAttr.Type.RELSEQ,
       children, partition.rel,
       sre.SemanticTree.getEmbellishedInner_(firstRel).textContent);
   node.role = firstRel.role;
Slightly less intrusive change of semantic tree structure:
Giving the multirel element a role if all the children roles are the same.