diff --git a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicPathMergeVertex.java b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicPathMergeVertex.java
index b5c05ae..6083cc2 100644
--- a/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicPathMergeVertex.java
+++ b/genomix/genomix-pregelix/src/main/java/edu/uci/ics/genomix/pregelix/operator/pathmerge/BasicPathMergeVertex.java
@@ -186,7 +186,7 @@
             destVertexId.setAsCopy(kmerIterator.next());
             setPredecessorToMeDir(destVertexId);
             outgoingMsg.setFlag(outFlag);
-            outgoingMsg.setFlip(ifFilpWithSuccessor(incomingMsg.getSourceVertexId()));
+            outgoingMsg.setFlip(ifFilpWithSuccessor());//incomingMsg.getSourceVertexId()
             sendMsg(destVertexId, outgoingMsg);
         }
         kmerIterator = getVertexValue().getRRList().getKeys();
@@ -194,7 +194,7 @@
             destVertexId.setAsCopy(kmerIterator.next());
             setPredecessorToMeDir(destVertexId);
             outgoingMsg.setFlag(outFlag);
-            outgoingMsg.setFlip(ifFilpWithSuccessor(incomingMsg.getSourceVertexId()));
+            outgoingMsg.setFlip(ifFilpWithSuccessor());//incomingMsg.getSourceVertexId()
             sendMsg(destVertexId, outgoingMsg);
         }
     }
diff --git a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/PathMergeTestSuite.java b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/PathMergeTestSuite.java
index 2ae36e3..e19d042 100644
--- a/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/PathMergeTestSuite.java
+++ b/genomix/genomix-pregelix/src/test/java/edu/uci/ics/genomix/pregelix/JobRun/PathMergeTestSuite.java
@@ -5,21 +5,21 @@
 public class PathMergeTestSuite extends BasicGraphCleanTestSuite{
 
     public static Test suite() throws Exception {
-        String pattern ="PathMerge";
-        String testSet[] = {"RingPath"};
-//                "2", "3", "4", "5", "6", "7", "8", "9", "head_6", "head_7",
-//                "LeftAdj", "RightAdj",
-//                "FR", "RF", "head_FR", "head_RF", "twohead_FR", "twohead_RF",
-//                "SelfTandemRepeat", "TandemRepeatWithMergeEdge", 
-//                "TandemRepeatWithUnmergeEdge", "ComplexTandemRepeat",
-//            {      "SimplePath", "ThreeDuplicate",
-//                "SimpleBridgePath", "BridgePathWithTandemRepeat",
-//                "RingPath", "CyclePath",
-//                "SimpleTreePath", "ComplexTreePath",
-//                "Triangle", "Rectangle", 
-//                "synthetic",
-//                "SmallGenome"
-//        };
+        String pattern ="PathMerge"; //
+        String testSet[] = {
+                "2", "3", "4", "5", "6", "7", "8", "9", "head_6", "head_7",
+                "LeftAdj", "RightAdj",
+                "FR", "RF", "head_FR", "head_RF", "twohead_FR", "twohead_RF",
+                "SelfTandemRepeat", "TandemRepeatWithMergeEdge", 
+                "TandemRepeatWithUnmergeEdge", "ComplexTandemRepeat",
+                "SimplePath", "ThreeDuplicate",
+                "SimpleBridgePath", "BridgePathWithTandemRepeat",
+                "RingPath", "CyclePath",
+                "SimpleTreePath", "ComplexTreePath",
+                "Triangle", "Rectangle", 
+                "synthetic",
+                "SmallGenome"
+        };
         init(pattern, testSet);
         BasicGraphCleanTestSuite testSuite = new BasicGraphCleanTestSuite();
         return makeTestSuite(testSuite);
diff --git a/genomix/genomix-pregelix/src/test/resources/only_PathMerge.txt b/genomix/genomix-pregelix/src/test/resources/only_PathMerge.txt
index 1ecfd69..3d007d2 100644
--- a/genomix/genomix-pregelix/src/test/resources/only_PathMerge.txt
+++ b/genomix/genomix-pregelix/src/test/resources/only_PathMerge.txt
@@ -1 +1 @@
-P2ForMergeGraph.xml
+P4ForMergeGraph.xml
