Index: XmlTools2/trunk/xmlpatch.cpp
===================================================================
--- XmlTools2/trunk/xmlpatch.cpp	(revision 946)
+++ XmlTools2/trunk/xmlpatch.cpp	(revision 947)
@@ -210,4 +210,11 @@
 
     UtilXmlTools::displaySuccessMessage(1,"@COMMAND");
+}
+
+QScriptValue echo(QScriptContext *context, QScriptEngine *engine)
+{
+    std::cout << context->argument(0).toString().toUtf8().constData() << std::endl;
+
+    return "";
 }
 
@@ -229,4 +236,8 @@
     QFile jsxmlfile(":/resources/libs/jsxml.js");
 
+    // Add echo function so user can debug the code
+    QScriptValue echoFunction = engine.newFunction(echo);
+    engine.globalObject().setProperty("echo", echoFunction);
+
     filesToProcess=UtilXmlTools::getAllXmlFilesByWildcard(filesWildcard);
 
@@ -263,5 +274,6 @@
         engine.globalObject().setProperty("$xmlData",currXmlFileString);
 
-        engineResult=engine.evaluate(jsString);
+        // main needs to be called so the user code is evaluated
+        engineResult=engine.evaluate("main(); function main() {"+jsString+"}"); // main funtion allows to use return to exit prematurely from user code
 
 #ifdef _USE_OLD_JS_ENGINE
