diff --git a/src/org/ntlab/deltaViewer/CollaborationAliasCollector.java b/src/org/ntlab/deltaViewer/CollaborationAliasCollector.java
index f53236d..c1be68f 100644
--- a/src/org/ntlab/deltaViewer/CollaborationAliasCollector.java
+++ b/src/org/ntlab/deltaViewer/CollaborationAliasCollector.java
@@ -56,7 +56,9 @@
 					if (!otherAlias.getMethodExecution().isStatic() && otherAlias.getMethodExecution().getCallerMethodExecution() != thisPrevAlias.getMethodExecution()) {
 						// Add a dummy alias to connect disjunct call hierarchies. (thisPrevAlias -> otherAlias)
 						MethodExecution caller = thisPrevAlias.getMethodExecution();
+//						MethodExecution callee = new DummyMethodExecution(otherAlias.getMethodExecution());		// Currently does not work because this dummy and the original one will be mixed.
 						MethodExecution callee = otherAlias.getMethodExecution();
+						callee.setCaller(caller, caller.getStatements().indexOf(thisPrevAlias.getOccurrencePoint().getStatement()));
 						DummyMethodInvocation dummyInv = new DummyMethodInvocation(callee, caller.getThisClassName(), caller.getThisObjId(), 0, thisPrevAlias.getOccurrencePoint().getStatement().getThreadNo());
 						dummyInv.setTimeStamp(callee.getEntryTime());
 						DummyTracePoint dummyTp = new DummyTracePoint(caller, dummyInv);
@@ -82,7 +84,9 @@
 						if (!otherAlias.getMethodExecution().isStatic() && otherAlias.getMethodExecution().getCallerMethodExecution() != thisPrevAlias.getMethodExecution()) {
 							// Add a dummy alias to connect disjunct call hierarchies. (thisPrevAlias -> otherAlias)
 							MethodExecution caller = thisPrevAlias.getMethodExecution();
+//							MethodExecution callee = new DummyMethodExecution(otherAlias.getMethodExecution());		// Currently does not work because this dummy and the original one will be mixed.
 							MethodExecution callee = otherAlias.getMethodExecution();
+							callee.setCaller(caller, caller.getStatements().indexOf(thisPrevAlias.getOccurrencePoint().getStatement()));
 							DummyMethodInvocation dummyInv = new DummyMethodInvocation(callee, caller.getThisClassName(), caller.getThisObjId(), 0, thisPrevAlias.getOccurrencePoint().getStatement().getThreadNo());
 							dummyInv.setTimeStamp(callee.getEntryTime());
 							DummyTracePoint dummyTp = new DummyTracePoint(caller, dummyInv);
@@ -98,7 +102,9 @@
 						if (!thisAlias.getMethodExecution().isStatic() && thisAlias.getMethodExecution().getCallerMethodExecution() != otherPrevAlias.getMethodExecution()) {
 							// Add a dummy alias to connect disjunct call hierarchies. (otherPrevAlias -> thisAlias)
 							MethodExecution caller = otherPrevAlias.getMethodExecution();
+//							MethodExecution callee = new DummyMethodExecution(thisAlias.getMethodExecution());		// Currently does not work because this dummy and the original one will be mixed.
 							MethodExecution callee = thisAlias.getMethodExecution();
+							callee.setCaller(caller, caller.getStatements().indexOf(otherPrevAlias.getOccurrencePoint().getStatement()));
 							DummyMethodInvocation dummyInv = new DummyMethodInvocation(callee, caller.getThisClassName(), caller.getThisObjId(), 0, otherPrevAlias.getOccurrencePoint().getStatement().getThreadNo());
 							dummyInv.setTimeStamp(callee.getEntryTime());
 							DummyTracePoint dummyTp = new DummyTracePoint(caller, dummyInv);
@@ -124,7 +130,9 @@
 			if (!thisAlias.getMethodExecution().isStatic() && thisAlias.getMethodExecution().getCallerMethodExecution() != otherPrevAlias.getMethodExecution()) {
 				// Add a dummy alias to connect disjunct call hierarchies. (otherPrevAlias -> thisAlias)
 				MethodExecution caller = otherPrevAlias.getMethodExecution();
+//				MethodExecution callee = new DummyMethodExecution(thisAlias.getMethodExecution());		// Currently does not work because this dummy and the original one will be mixed.
 				MethodExecution callee = thisAlias.getMethodExecution();
+				callee.setCaller(caller, caller.getStatements().indexOf(otherPrevAlias.getOccurrencePoint().getStatement()));
 				DummyMethodInvocation dummyInv = new DummyMethodInvocation(callee, caller.getThisClassName(), caller.getThisObjId(), 0, otherPrevAlias.getOccurrencePoint().getStatement().getThreadNo());
 				dummyInv.setTimeStamp(callee.getEntryTime());
 				DummyTracePoint dummyTp = new DummyTracePoint(caller, dummyInv);