Sync with latest from head.

diff --git a/org.eclipse.egf.model/src/org/eclipse/egf/model/helper/ActivityCycleFinder.java b/org.eclipse.egf.model/src/org/eclipse/egf/model/helper/ActivityCycleFinder.java
index a9c6aeb..c651441 100644
--- a/org.eclipse.egf.model/src/org/eclipse/egf/model/helper/ActivityCycleFinder.java
+++ b/org.eclipse.egf.model/src/org/eclipse/egf/model/helper/ActivityCycleFinder.java
@@ -26,23 +26,23 @@
  */

 public class ActivityCycleFinder {

 

-  private List<Activity> _activities;

+  private List<Activity> _activities = new ArrayList<Activity>();

 

   private Activity _activity;

 

   public ActivityCycleFinder(Activity activity) {

     Assert.isNotNull(activity);

     _activity = activity;

-    _activities = new ArrayList<Activity>();

-    _activities.add(_activity);

   }

 

   public ModelElement getFirstRepetition() {

+    _activities.clear();

     return getFirstRepetition(_activity);

   }

 

   protected ModelElement getFirstRepetition(Activity activity) {

     if (activity instanceof FactoryComponent) {

+      _activities.add(activity);

       return getFirstRepetition(((FactoryComponent) activity).getOrchestration());

     }

     return null;

@@ -62,10 +62,10 @@
     if (invocation.getActivity() == null) {

       return null;

     }

+    // Cycle detection at invocation level

     if (activityLookup(invocation.getActivity())) {

       return invocation;

     }

-    _activities.add(invocation.getActivity());

     return getFirstRepetition(invocation.getActivity());

   }