Index: trunk/autoquest-core-usability/src/main/java/de/ugoe/cs/autoquest/usability/TextInputStatisticsRule.java
===================================================================
--- trunk/autoquest-core-usability/src/main/java/de/ugoe/cs/autoquest/usability/TextInputStatisticsRule.java	(revision 1149)
+++ trunk/autoquest-core-usability/src/main/java/de/ugoe/cs/autoquest/usability/TextInputStatisticsRule.java	(revision 1300)
@@ -22,11 +22,15 @@
 import java.util.Map;
 
+import de.ugoe.cs.autoquest.eventcore.IEventTarget;
+import de.ugoe.cs.autoquest.eventcore.IEventType;
 import de.ugoe.cs.autoquest.eventcore.gui.TextInput;
 import de.ugoe.cs.autoquest.eventcore.guimodel.ITextArea;
 import de.ugoe.cs.autoquest.eventcore.guimodel.ITextField;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTask;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.IEventTaskInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IMarkingTemporalRelationship;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.IStructuringTemporalRelationship;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITask;
+import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskInstance;
 import de.ugoe.cs.autoquest.tasktrees.treeifc.ITaskModel;
 
@@ -247,7 +251,5 @@
     private void calculateStatistics(ITask task, TextInputStatistics statistics) {
         
-        if ((task instanceof IEventTask) &&
-            (((IEventTask) task).getEventType() instanceof TextInput))
-        {
+        if (isTextInput(task)) {
             calculateStatistics((IEventTask) task, statistics);
         }
@@ -269,4 +271,23 @@
 
     /**
+     * <p>
+     * TODO: comment
+     * </p>
+     *
+     * @param task
+     * @return
+     */
+    private boolean isTextInput(ITask task) {
+        if (task.getInstances().size() > 0) {
+            ITaskInstance instance = task.getInstances().iterator().next();
+            if (instance instanceof IEventTaskInstance) {
+                return ((IEventTaskInstance) instance).getEvent().getType() instanceof TextInput;
+            }
+        }
+
+        return false;
+    }
+
+    /**
      * TODO: comment
      * 
@@ -275,12 +296,20 @@
      */
     private void calculateStatistics(IEventTask node, TextInputStatistics statistics) {
-        String[] fragments =
-            determineTextFragments(((TextInput) node.getEventType()).getEnteredText());
-
-        if (node.getEventTarget() instanceof ITextField) {
-            statistics.addTextFieldInput(node, fragments);
-        }
-        else if (node.getEventTarget() instanceof ITextArea) {
-            statistics.addTextAreaInput(node, fragments);
+        
+        for (ITaskInstance instance : node.getInstances()) {
+            IEventType type = ((IEventTaskInstance) instance).getEvent().getType();
+            IEventTarget target = ((IEventTaskInstance) instance).getEvent().getTarget();
+
+            if (type instanceof TextInput) {
+                String[] fragments =
+                    determineTextFragments(((TextInput) type).getEnteredText());
+                
+                if (target instanceof ITextField) {
+                    statistics.addTextFieldInput(node, fragments);
+                }
+                else if (target instanceof ITextArea) {
+                    statistics.addTextAreaInput(node, fragments);
+                }
+            }
         }
     }
