diff --git a/examples/actors/SSRAnalysis.java b/examples/actors/SSRAnalysis.java
index a39078ec5549138fca51ceeb424aa87dcb5b2ceb..021dd6124479c4baf3adea9c56d67e3dfabbd712 100644
--- a/examples/actors/SSRAnalysis.java
+++ b/examples/actors/SSRAnalysis.java
@@ -8,14 +8,15 @@
 
 import xdfAST.Start;
 import xdfAST.Instance;
-import java.util.LinkedList;
+import java.util.HashSet;
 
 public class SSRAnalysis extends XdfParser {
 	public static void main(String args[]) {
 		Start ast = parse(args);
 
 		ast.genSSR(System.out);
-		LinkedList<Instance> l = ast.genStaticSchedule(new LinkedList<Instance>());
+		HashSet<Instance> l = ast.genStaticSchedule(new HashSet<Instance>());
+		System.out.println("\n\n");
 
 		for (Instance i: l){
 			do {
@@ -24,6 +25,17 @@ public class SSRAnalysis extends XdfParser {
 			} while (i != null);
 			System.out.println();
 		}
+
+		String s = genScheduleXML(l);
+	}
+
+
+	static String genScheduleXML(HashSet<Instance> set) {
+		StringBuffer sb = new StringBuffer();
+		sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+		sb.append("<Schedule>\n");
+
+		return sb.toString();
 	}
 }
 
diff --git a/examples/actors/xdf/SSR.jrag b/examples/actors/xdf/SSR.jrag
index 045a82e4670702a14bee5dd8e853a48df56c27a5..5ebd9446ed345b7546432150546362ba27ba32cb 100644
--- a/examples/actors/xdf/SSR.jrag
+++ b/examples/actors/xdf/SSR.jrag
@@ -8,7 +8,7 @@
 
 import java.io.PrintStream;
 import java.io.FileReader;
-import java.util.LinkedList;
+import java.util.HashSet;
 
 
 aspect SSR {
@@ -28,14 +28,15 @@ aspect SSR {
 }
 
 aspect SDF {
-	syn boolean Instance.isSDF() = xlim().isSDF();
-	syn xlimAST.Start Instance.xlim() {
+	syn boolean Instance.isSDF() {
 		try {
-			xlimAST.XmlParser parser = new xlimAST.XmlParser(new FileReader(name()));
-			return parser.Start();
+ 			System.out.println("Trying to open: "+name());
+			xlimAST.XmlParser parser = new xlimAST.XmlParser(new FileReader(name()+".xlim"));
+			return parser.Start().isSDF();
 		} catch (Exception e) {
-			e.printStackTrace();
-			return null;
+			System.out.println( name()+".xlim not found");
+// 			e.printStackTrace();
+			return false;
 		}
 	}
 }
@@ -45,31 +46,35 @@ aspect StaticSchedule {
 	public Instance Instance.prev;
 
 
-	syn LinkedList<Instance> ASTNode.genStaticSchedule(LinkedList<Instance> l) = l;
-	eq Start.genStaticSchedule(LinkedList<Instance> l) = getSpecification().genStaticSchedule(l);
-	eq Specification.genStaticSchedule(LinkedList<Instance> l) {
+	syn HashSet<Instance> ASTNode.genStaticSchedule(HashSet<Instance> l) = l;
+	eq Start.genStaticSchedule(HashSet<Instance> l) = getSpecification().genStaticSchedule(l);
+	eq Specification.genStaticSchedule(HashSet<Instance> l) {
 		for (int i=0; i<getNumElement(); i++) {
 			l = getElement(i).genStaticSchedule(l);
 		}
 		return l;
 	}
-	eq XDF.genStaticSchedule(LinkedList<Instance> l) {
+	eq XDF.genStaticSchedule(HashSet<Instance> l) {
 		for (int i=0; i<getNumElement(); i++) {
 			l = getElement(i).genStaticSchedule(l);
 		}
 		return l;		
 	}
-	eq Connection.genStaticSchedule(LinkedList<Instance> l) {
+	eq Connection.genStaticSchedule(HashSet<Instance> l) {
 		Instance src = getSource();
 		Instance dest = getDest();
-		if (src.isSDF() && dest.isSDF()) {
+		if (dest.isSDF() && src.isSDF()) {
 			src.next = dest;
 			dest.prev = src;
+			l.remove(dest);
 		}
 		if (src.prev == null) {
 			l.add(src);
 		}
-// 		System.out.println(src.name());
+		if (dest.prev == null) {
+			l.add(dest);
+		}
+ 		System.out.println(src.name());
 		return l;
 // 		Instance dest = getDest();
 	}
@@ -129,9 +134,9 @@ aspect misc {
 	Note Instance.getUIDNote() {
 		for (Element e : getElements()) {
 			if (e instanceof Note) {
-				System.out.println("Checking "+e.kind());
+// 				System.out.println("Checking "+e.kind());
 				if (e.kind().equals("UID")) {
-					System.out.println("  Yes");
+// 					System.out.println("  Yes");
 					return (Note) e;
 				}
 			}
@@ -142,10 +147,10 @@ aspect misc {
 	syn String Element.kind() = "";
 	eq Note.kind() {
 		for (Attribute a : getAttributes()) {
-			System.out.println("   checking: "+a);
+// 			System.out.println("   checking: "+a);
 			if (a.isKind()) {
-				System.out.println("    found "+value());
-				return value();
+// 				System.out.println("    found "+fix(a.getAttrValue().getLITERAL()));
+				return fix(a.getAttrValue().getLITERAL());
 			}
 		}
 		return "";