Index: README.release
===================================================================
diff -u -rbb380c8762b4afb6c0c87089fb8ba33535830391 -r2dca7abdd5d83421b31b220bc6dabba1047d68fb
--- README.release	(.../README.release)	(revision bb380c8762b4afb6c0c87089fb8ba33535830391)
+++ README.release	(.../README.release)	(revision 2dca7abdd5d83421b31b220bc6dabba1047d68fb)
@@ -9,7 +9,8 @@
          make test 2>&1|cat |fgrep Overall
        * configure with --enable-development and activate valgrind in Makefile
          make test 2>&1|cat |fgrep "definitely lost"
-         (8.5 ok, whenevery test returns "40 bytes in 2 blocks")
+         (8.5.11 ok, when every test returns "40 bytes in 2 blocks")
+         (8.5.14 ok, when on test reurns "64 bytes in 1 blocks")
        * get rid of non-ansi-c
          make "CFLAGS_DEFAULT=-ansi -pedantic"
          (warnings are ok, errors not)
@@ -22,14 +23,15 @@
          make install
          make install-aol
          test with naviserver/aolserver (xowiki/xowf)
-     * tcl 8.6b2: 
+     * tcl 8.6: 
        * configure with --enable-development
          make test
        * configure with --enable-memcount=yes
          make test 2>&1|cat |fgrep Overall  
        * configure with --enable-development and activate valgrind in Makefile
          make test 2>&1|cat |fgrep "definitely lost"
          (8.6b2 ok, whenevery test returns "40 bytes in 2 blocks")
+         (8.6.0 ok, whenevery test returns "0 bytes in 0 blocks")
 
    - Announcement
       * Summarize changes since the last release in doc/Announce-VERSION
Index: TODO
===================================================================
diff -u -r5e494cf3cf01d01128b365f91ed3cd9716b1b11e -r2dca7abdd5d83421b31b220bc6dabba1047d68fb
--- TODO	(.../TODO)	(revision 5e494cf3cf01d01128b365f91ed3cd9716b1b11e)
+++ TODO	(.../TODO)	(revision 2dca7abdd5d83421b31b220bc6dabba1047d68fb)
@@ -4685,7 +4685,9 @@
 ========================================================================
 TODO:
 
- - spellcheck / ChangeLog (to point out differences to 2.0b3)
+ - update + spellcheck / ChangeLog (to point out differences to 2.0b3)
+ - recheck Announce
+   
 
 Stefan: doc itmes
 
Index: generic/asm/nsfAssemble.c
===================================================================
diff -u -r1ed65d1a290eee7055d47433bae07b5232a1ddb7 -r2dca7abdd5d83421b31b220bc6dabba1047d68fb
--- generic/asm/nsfAssemble.c	(.../nsfAssemble.c)	(revision 1ed65d1a290eee7055d47433bae07b5232a1ddb7)
+++ generic/asm/nsfAssemble.c	(.../nsfAssemble.c)	(revision 2dca7abdd5d83421b31b220bc6dabba1047d68fb)
@@ -171,10 +171,10 @@
 static int
 AsmInstructionArgvCheck(Tcl_Interp *interp, int from, int to, CONST char **argType, 
 			int nrSlots, int nrStatements, Tcl_Obj **wordOv, Tcl_Obj *lineObj) {
-  int j, result;
+  int j;
 
   for (j = from; j < to; j += 2) {
-    int argIndex, typesIndex, intValue;
+    int argIndex, typesIndex, intValue, result;
 
     //fprintf(stderr, "check arg type %s\n", ObjStr(wordOv[j]));
     result = Tcl_GetIndexFromObj(interp, wordOv[j], asmStatementArgType, 
@@ -338,33 +338,35 @@
   //fprintf(stderr, "NsfAsmProcStub %s is called, tcd %p object %p\n", ObjStr(objv[0]), cd, cd->object);
 
   if (likely(cd->paramDefs && cd->paramDefs->paramsPtr)) {
-    ParseContext *pcPtr;
     ALLOC_ON_STACK(Tcl_Obj*, objc, tov);
 
     fprintf(stderr, "not implemented yet\n");
 #if 0
-    pcPtr = (ParseContext *) NsfTclStackAlloc(interp, sizeof(ParseContext), "parse context");
-    /*
-     * We have to substitute the first element of objv with the name
-     * of the function to be called. Since objv is immutable, we have
-     * to copy the full argument vector and replace the element on
-     * position [0]
-     */
-    memcpy(tov, objv, sizeof(Tcl_Obj *)*(objc));
-    //tov[0] = tcd->procName;
-
-    /* If the argument parsing is ok, the body will be called */
-    result = ProcessMethodArguments(pcPtr, interp, NULL, 0,
-				    cd->paramDefs, objv[0],
-				    objc, tov);
-
-    if (likely(result == TCL_OK)) {
-      result = InvokeShadowedProc(interp, cd->procName, cd->cmd, pcPtr);
-    } else {
-      /*Tcl_Obj *resultObj = Tcl_GetObjResult(interp);
-      fprintf(stderr, "NsfProcStub: incorrect arguments (%s)\n", ObjStr(resultObj));*/
-      ParseContextRelease(pcPtr);
-      NsfTclStackFree(interp, pcPtr, "release parse context");
+    {
+      ParseContext *pcPtr;
+      pcPtr = (ParseContext *) NsfTclStackAlloc(interp, sizeof(ParseContext), "parse context");
+      /*
+       * We have to substitute the first element of objv with the name
+       * of the function to be called. Since objv is immutable, we have
+       * to copy the full argument vector and replace the element on
+       * position [0]
+       */
+      memcpy(tov, objv, sizeof(Tcl_Obj *)*(objc));
+      //tov[0] = tcd->procName;
+      
+      /* If the argument parsing is ok, the body will be called */
+      result = ProcessMethodArguments(pcPtr, interp, NULL, 0,
+				      cd->paramDefs, objv[0],
+				      objc, tov);
+      
+      if (likely(result == TCL_OK)) {
+	result = InvokeShadowedProc(interp, cd->procName, cd->cmd, pcPtr);
+      } else {
+	/*Tcl_Obj *resultObj = Tcl_GetObjResult(interp);
+	  fprintf(stderr, "NsfProcStub: incorrect arguments (%s)\n", ObjStr(resultObj));*/
+	ParseContextRelease(pcPtr);
+	NsfTclStackFree(interp, pcPtr, "release parse context");
+      }
     }
 #endif
     /*fprintf(stderr, "NsfProcStub free on stack %p\n", tov);*/
Index: generic/nsf.c
===================================================================
diff -u -rdf0cf3d60b6d6b5109997b00ceeeebec611db7fc -r2dca7abdd5d83421b31b220bc6dabba1047d68fb
--- generic/nsf.c	(.../nsf.c)	(revision df0cf3d60b6d6b5109997b00ceeeebec611db7fc)
+++ generic/nsf.c	(.../nsf.c)	(revision 2dca7abdd5d83421b31b220bc6dabba1047d68fb)
@@ -1236,7 +1236,6 @@
 
 static int
 GetObjectFromObj(Tcl_Interp *interp, Tcl_Obj *objPtr, NsfObject **objectPtr) {
-  int result;
   NsfObject *object;
   CONST char *string;
   Tcl_Command cmd;
@@ -1278,13 +1277,12 @@
     DECR_REF_COUNT(tmpName);
   }
 
-  if (object) {
-    if (objectPtr) *objectPtr = object;
-    result = TCL_OK;
-  } else {
-    result = TCL_ERROR;
+  if (likely(object != NULL)) {
+    if (objectPtr) {*objectPtr = object;}
+    return TCL_OK;
   }
-  return result;
+
+  return TCL_ERROR;
 }
 
 /*
@@ -20933,8 +20931,8 @@
 NsfParameterInvalidateObjectCacheCmd(Tcl_Interp *interp, NsfObject *object) {
 #if defined(PER_OBJECT_PARAMETER_CACHING)
   if (object->opt && object->opt->parsedParamPtr) {
-    fprintf(stderr, "   %p %s invalidate %p\n", object,
-	    ObjectName(object),  object->opt->parsedParamPtr);
+    /*fprintf(stderr, "   %p %s invalidate %p\n", object,
+      ObjectName(object),  object->opt->parsedParamPtr);*/
     ParsedParamFree(object->opt->parsedParamPtr);
     object->opt->parsedParamPtr = NULL;
   }
@@ -21831,8 +21829,8 @@
      * We have object-specific parameters.  Do not use the per-class cache,
      * and do not save the results in the per-class cache
      */
-    fprintf(stderr, "per-object configure obj %s flags %.6x\n", 
-	    ObjectName(object), object->flags);
+    /*fprintf(stderr, "per-object configure obj %s flags %.6x\n", 
+      ObjectName(object), object->flags);*/
     class = NULL;
   } else {
     class = object->cl;