Index: trunk/autoquest-core-usability/src/main/java/de/ugoe/cs/autoquest/usability/MisleadingClickCueRule.java
===================================================================
--- trunk/autoquest-core-usability/src/main/java/de/ugoe/cs/autoquest/usability/MisleadingClickCueRule.java	(revision 1918)
+++ trunk/autoquest-core-usability/src/main/java/de/ugoe/cs/autoquest/usability/MisleadingClickCueRule.java	(revision 2042)
@@ -24,4 +24,5 @@
 import de.ugoe.cs.autoquest.eventcore.gui.MouseClick;
 import de.ugoe.cs.autoquest.eventcore.gui.MouseDoubleClick;
+import de.ugoe.cs.autoquest.eventcore.guimodel.IButton;
 import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElement;
 import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIView;
@@ -65,27 +66,28 @@
                                    UsabilityEvaluationResult results)
     {
-        for (Map.Entry<IGUIView, Map<IGUIElement, Integer>> uselessClickCounter :
+        for (Map.Entry<IGUIElement, Map<IGUIView, Integer>> uselessClickCounter :
                 statistics.getUselessClickCounters().entrySet())
         {
-            for (Map.Entry<IGUIElement, Integer> counter : uselessClickCounter.getValue().entrySet())
-            {
-                int uselessClicks = counter.getValue();
-                int noOfViewDisplays = statistics.getViewOpenedCount(uselessClickCounter.getKey());
-
-                int ratio = Math.min(1000, 1000 * uselessClicks / noOfViewDisplays);
-
-                UsabilitySmellIntensity intensity =
-                    UsabilitySmellIntensity.getIntensity(ratio, uselessClicks, -1);
-
-                if (intensity != null) {
-                    Map<String, Object> parameters = new HashMap<String, Object>();
-                    parameters.put("noOfViewDisplays", noOfViewDisplays);
-                    parameters.put("uselessClicks", uselessClicks);
-                    parameters.put("element", counter.getKey());
-                    parameters.put("view", uselessClickCounter.getKey());
-
-                    results.addSmell
-                        (intensity, UsabilitySmellDescription.MISLEADING_CLICK_CUE, parameters);
-                }
+            int uselessClicks = 0;
+            int noOfViewDisplays = 0;
+            
+            for (Map.Entry<IGUIView, Integer> counter : uselessClickCounter.getValue().entrySet()) {
+                uselessClicks += counter.getValue();
+                noOfViewDisplays += statistics.getViewOpenedCount(counter.getKey());
+            }
+
+            int ratio = Math.min(1000, 1000 * uselessClicks / noOfViewDisplays);
+
+            UsabilitySmellIntensity intensity =
+                UsabilitySmellIntensity.getIntensity(ratio, uselessClicks, -1);
+
+            if (intensity != null) {
+                Map<String, Object> parameters = new HashMap<String, Object>();
+                parameters.put("noOfViewDisplays", noOfViewDisplays);
+                parameters.put("uselessClicks", uselessClicks);
+                parameters.put("element", uselessClickCounter.getKey());
+
+                results.addSmell
+                    (intensity, UsabilitySmellDescription.MISLEADING_CLICK_CUE, parameters);
             }
         }
@@ -155,5 +157,11 @@
             (target instanceof IText))
         {
-            return true;
+            // check if the parent is a button
+            IGUIElement parent = target;
+            while ((parent != null) && !(parent instanceof IButton)) {
+                parent = parent.getParent();
+            }
+            
+            return !(parent instanceof IButton);
         }
         else {
@@ -171,5 +179,5 @@
         
         /** */
-        private Map<IGUIView, Map<IGUIElement, Integer>> uselessClickCounters = new HashMap<>();
+        private Map<IGUIElement, Map<IGUIView, Integer>> uselessClickCounters = new HashMap<>();
 
         /**
@@ -199,27 +207,27 @@
          */
         private void addUselessClick(IEventTaskInstance eventTaskInstance) {
-            Map<IGUIElement, Integer> counterMap = uselessClickCounters.get
-                (((IGUIElement) eventTaskInstance.getEvent().getTarget()).getView());
+            IGUIElement target = (IGUIElement) eventTaskInstance.getEvent().getTarget();
+            
+            Map<IGUIView, Integer> counterMap = uselessClickCounters.get(target);
             
             if (counterMap == null) {
                 counterMap = new HashMap<>();
-                uselessClickCounters.put
-                    (((IGUIElement) eventTaskInstance.getEvent().getTarget()).getView(), counterMap);
-            }
-            
-            Integer counter = counterMap.get(eventTaskInstance.getEvent().getTarget());
+                uselessClickCounters.put(target, counterMap);
+            }
+            
+            Integer counter = counterMap.get(target.getView());
             
             if (counter == null) {
-                counterMap.put((IGUIElement) eventTaskInstance.getEvent().getTarget(), 1);
+                counterMap.put(target.getView(), 1);
             }
             else {
-                counterMap.put((IGUIElement) eventTaskInstance.getEvent().getTarget(), counter + 1);
-            }
-        }
-
-        /**
-         *
-         */
-        private Map<IGUIView, Map<IGUIElement, Integer>> getUselessClickCounters() {
+                counterMap.put(target.getView(), counter + 1);
+            }
+        }
+
+        /**
+         *
+         */
+        private Map<IGUIElement, Map<IGUIView, Integer>> getUselessClickCounters() {
             return uselessClickCounters;
         }
