Index: tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_nonLinBlock.tol
===================================================================
--- tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_nonLinBlock.tol	(revision 686f33da4cd5725cf00ffed88f1e9743cfe69012)
+++ tol/stdlib/math/stat/models/bayesian/bysMcmc/bsr/gibbs/_nonLinBlock.tol	(revision d3aa758e97eae5eb0e70c6357a18d73fd6c1c683)
@@ -68,6 +68,8 @@
     ((_.bsr::_.modelDef)->NoiseDistrib)[_.segmentNum]
   });
+  //Non linear parameters
+  Set _.colNames = _.filterEval::get.colNames(0);
   //Number of non linear parameters
-  Set _.colNames = _.filterEval::get.colNames(0);
+  Real _.numVar = Card(_.colNames); 
   //For input filters is +1, for output ones -1
   Real _.isInputFilter = If(FunctionExist("Set","_.filterEval::get.linBlkNames"),
@@ -272,5 +274,12 @@
     {
     //WriteLn("TRACE"+_MID+"draw 2");
-      draw.scalar(numSim, False)
+      If(_.blockDef::_.numCol==0,
+      {
+        Real setStore(_.blockDef::_.store);
+        _.blockDef::_.store
+      },
+      {
+        draw.scalar(numSim, False)
+      })
     },
     {
@@ -311,21 +320,19 @@
   {
   //WriteLn("TRACE "+_MID+"::setStore 1 values("<<Rows(values)+"x"<<Columns(values)+")");
-    If(_.blockDef::_.numCol<=0,0,
+    Real If(_.blockDef::_.numCol==0,0,
     {
     //WriteLn("TRACE "+_MID+"::setStore 2");
-      Real _.blockDef::setStore(values);
+      Real _.blockDef::setStore(values)
+    });
     //WriteLn("TRACE "+_MID+"::setStore 3");
-      Matrix _.Fi := _.filterEval::eval(VMat2Mat(_.blockDef::_.store));
+    Matrix _.Fi := _.filterEval::eval(VMat2Mat(_.blockDef::_.store));
     //WriteLn("TRACE "+_MID+"::setStore 4");
-      If(!_.isInputFilter, 0,
-      {
-        SetMin(For(1,_.filterColNum,Real(Real column)
-        {
-          _.bsr::setSegmentInputCol(
-            SubCol(_.Fi,[[column]]),
-            _.segmentNum, 
-            _.filterColIdx[column])
-        }))
-      })
+    If(!_.isInputFilter, 0,
+    {
+      SetMin(For(1,_.filterColNum,Real(Real column)
+      {
+        _.bsr::setSegmentInputCol(
+          SubCol(_.Fi,[[column]]), _.segmentNum, _.filterColIdx[column])
+      }))
     })
   };
