diff --git a/WorkArounds.jrag b/WorkArounds.jrag
new file mode 100644
index 0000000000000000000000000000000000000000..eddb1a0545ea842279df105b8c40f8077a155a5f
--- /dev/null
+++ b/WorkArounds.jrag
@@ -0,0 +1,15 @@
+/* -*-Java-*- */
+
+/* 
+ * Copyright (C) 2007  Anders Nilsson <anders.nilsson@cs.lth.se>
+ *
+ * This file is part of XmlSchemaCompiler.
+ */
+
+
+aspect Fixes {
+	int ASTNode.numChildren;
+	int ASTNode.numChildren() {return jjtGetNumChildren();}
+	int List.getNumNoTransformChild() {return getNumChildNoTransform();}
+	int Opt.getNumChildNoTransfrom() {return getNumChildNoTransform();}
+}
\ No newline at end of file
diff --git a/examples/actors/xdf/MergeActors.jrag b/examples/actors/xdf/MergeActors.jrag
index 0c9333f591a580f1b73d53d9324961341c96f1c1..4dcf792c6ddea69747ebc7edd8b8245a388dd869 100644
--- a/examples/actors/xdf/MergeActors.jrag
+++ b/examples/actors/xdf/MergeActors.jrag
@@ -40,6 +40,8 @@ aspect MergeActors {
 				}
 				i.merge(i.next);
 				i.setName(i.name()+"_"+i.next.name());
+				i.next.remove_me = true;
+				i.next.is$Final(false);
 				i.next = i.next.next;
 			}
 		}
@@ -73,11 +75,16 @@ aspect Misc {
 }
 
 aspect Rewrites {
-	boolean Connection.remove_me = false;
+	boolean ComplexElement.remove_me = false;
 	
 	rewrite Connection {
 		when (remove_me) to ComplexElement {
 			return new ComplexElement();
 		}
 	}
+	rewrite Instance
+		when (remove_me) to ComplexElement {
+			return new ComplexElement();
+		}
+	}
 }
\ No newline at end of file
diff --git a/examples/actors/xlim/Merge.jrag b/examples/actors/xlim/Merge.jrag
new file mode 100644
index 0000000000000000000000000000000000000000..2edcdb3e20789a69ea8f78994d6958316dd937d2
--- /dev/null
+++ b/examples/actors/xlim/Merge.jrag
@@ -0,0 +1,36 @@
+/* -*-Java-*- */                                         
+
+/*
+ * Copyright (C) 2009  Anders Nilsson <anders.nilsson@cs.lth.se>
+ *                                                              
+ * This file is part of Actors model compiler.                      
+ */                                                             
+
+import java.util.HashSet;
+
+aspect Merge {
+	public void design.merge(design dest) {
+		HashSet<operation> ops = getOperations(new HashSet<operation>());
+		for (Element e : getElements()) {
+			if (e.isAction()) {
+				for (operation o : ops) {
+					((module) e).addElement(o);
+				}
+			}
+		}
+	}
+}
+
+aspect Operations {
+	syn HashSet<operation> Element.getOperations(HashSet<operation> ops) = ops;
+	eq ComplexElement.getOperations(HashSet<operation> ops) {
+		for (Element e : getElements()) {
+			ops = e.getOperations(ops);
+		}
+		return ops;
+	}
+	eq operation.getOperations(HashSet<operation> ops) {
+		ops.add(this);
+		return ops;
+	}
+}
\ No newline at end of file