diff -r 2455ef1f5bbc -r d5e927d5853b javaextensions/sensor/src.s60/csensorbase.cpp --- a/javaextensions/sensor/src.s60/csensorbase.cpp Wed Sep 01 12:33:18 2010 +0100 +++ b/javaextensions/sensor/src.s60/csensorbase.cpp Tue Sep 14 21:06:50 2010 +0300 @@ -249,14 +249,13 @@ matched = ETrue; CSensorConditionBase *condition = iConditions[i]; iConditions.Remove(i); - if (iSensorListener) - { - iSensorListener->ConditionMet( - condition, - condition->GetChannelId(), - currentValue, - javaTime); - } + + iSensorListener->ConditionMet( + condition, + condition->GetChannelId(), + currentValue, + javaTime); + delete condition; } } @@ -264,6 +263,7 @@ // Also send all values separately if we have java side custom conditions if (iJavaConditionEval) { + if (iSensorListener != NULL) iSensorListener->ConditionMet(0, aChannelId, currentValue, javaTime); } return matched;