Index: /trunk/FACT++/src/InterpreterV8.cc
===================================================================
--- /trunk/FACT++/src/InterpreterV8.cc	(revision 14639)
+++ /trunk/FACT++/src/InterpreterV8.cc	(revision 14640)
@@ -87,5 +87,9 @@
 {
     V8::TerminateExecution(fThreadId);
-    return Undefined();
+
+    // we have to throw an excption to make sure that the
+    // calling thread does not go on executing until it
+    // has realized that it should terminate
+    return ThrowException(Null());
 }
 
@@ -1017,4 +1021,5 @@
 
     // -------------------------------------------------------------------
+
     TryCatch exception;
 
@@ -1023,11 +1028,6 @@
 
     Handle<Value> ret = ConvertEvent(&evt, cnt, service.c_str());
-    if (ret->IsArray())
-    {
-        Handle<Array> data = Handle<Array>::Cast(ret);
-        Handle<Value> args[] = { data };
-
-        Handle<Function>::Cast(val)->Call(obj, 1, args);
-    }
+    if (ret->IsObject())
+        Handle<Function>::Cast(val)->Call(obj, 1, &ret);
 
     fThreadIds.erase(id);
