Index: tol/bbasic/bfsmem.cpp
===================================================================
--- tol/bbasic/bfsmem.cpp	(revision 017310d356d2242845b196b3d6226e6cd80e9aae)
+++ tol/bbasic/bfsmem.cpp	(revision 8bf03c17f96ec222736682c322b19ddddf30bea4)
@@ -353,4 +353,10 @@
 {
   BYTE2 p = (address-pool_)/baseSize_;
+  if(available_>=pageSize_)
+  {
+    printf("\nBPage()::Delete() available_:%u  pageSize_:%u ",
+           available_, 
+           pageSize_); 
+  }
 # ifdef BFSMEM_DEBUG_PAGE
   assert(available_<pageSize_);
@@ -366,5 +372,5 @@
          baseSize_, 
          pageSize_, 
-         p); div
+         p);
 # endif
   avail_[available_++] = p; 
Index: tol/bbasic/tol_bfsmem.h
===================================================================
--- tol/bbasic/tol_bfsmem.h	(revision 017310d356d2242845b196b3d6226e6cd80e9aae)
+++ tol/bbasic/tol_bfsmem.h	(revision 8bf03c17f96ec222736682c322b19ddddf30bea4)
@@ -95,4 +95,8 @@
 #define UndeclareClassNewDelete \
 public:	\
+  short IsAssigned() const  \
+  { \
+    return(-1); \
+  } \
   static void* operator new(size_t size) \
   { \
Index: tol/btol/bgrammar/nameblock.cpp
===================================================================
--- tol/btol/bgrammar/nameblock.cpp	(revision 017310d356d2242845b196b3d6226e6cd80e9aae)
+++ tol/btol/bgrammar/nameblock.cpp	(revision 8bf03c17f96ec222736682c322b19ddddf30bea4)
@@ -130,5 +130,5 @@
   SetEmptyKey(private_,NULL);
 #if (__USE_POOL__==__POOL_BFSMEM__)
-  short isAssigned = BFSMEM_Hndlr->IsAssigned(this,this->_bfsm_PageNum__);
+  short isAssigned = BFSMEM_Hndlr->IsAssigned(this,this->GetPageNum());
 #else
   short isAssigned = -1;
@@ -158,5 +158,5 @@
   SetEmptyKey(private_,NULL);
 #if (__USE_POOL__==__POOL_BFSMEM__)
-  short isAssigned = BFSMEM_Hndlr->IsAssigned(this,this->_bfsm_PageNum__);
+  short isAssigned = BFSMEM_Hndlr->IsAssigned(this,this->GetPageNum());
 #else
   short isAssigned = -1;
@@ -184,5 +184,5 @@
 {
 #if (__USE_POOL__==__POOL_BFSMEM__)
-  short isAssigned = BFSMEM_Hndlr->IsAssigned(this,this->_bfsm_PageNum__);
+  short isAssigned = BFSMEM_Hndlr->IsAssigned(this,this->GetPageNum());
 #else
   short isAssigned = -1;
@@ -293,5 +293,5 @@
   if(createdWithNew_) 
   { 
-    short isAssigned = BFSMEM_Hndlr->IsAssigned(this,this->_bfsm_PageNum__);
+    short isAssigned = BFSMEM_Hndlr->IsAssigned(this,this->GetPageNum());
     return(isAssigned); 
   }
@@ -339,7 +339,7 @@
   if(current_ && 
      current_->createdWithNew_ &&
-     !(BFSMEM_Hndlr->IsAssigned(current_,current_->_bfsm_PageNum__)))
-  {
-    BFSMEM_Hndlr->IsAssigned(current_,current_->_bfsm_PageNum__);
+     !(BFSMEM_Hndlr->IsAssigned(current_,current_->GetPageNum())))
+  {
+    BFSMEM_Hndlr->IsAssigned(current_,current_->GetPageNum());
     current_ = NULL;
   }
@@ -365,8 +365,8 @@
      building_->Contens().createdWithNew_ &&
      !(BFSMEM_Hndlr->IsAssigned(&building_->Contens(),
-                                building_->Contens()._bfsm_PageNum__)))
+                                building_->Contens().GetPageNum())))
   {
     BFSMEM_Hndlr->IsAssigned(&building_->Contens(),
-                             building_->Contens()._bfsm_PageNum__);
+                             building_->Contens().GetPageNum());
     building_ = NULL;
   }
Index: tol/btol/bgrammar/spfuninst.cpp
===================================================================
--- tol/btol/bgrammar/spfuninst.cpp	(revision 017310d356d2242845b196b3d6226e6cd80e9aae)
+++ tol/btol/bgrammar/spfuninst.cpp	(revision 8bf03c17f96ec222736682c322b19ddddf30bea4)
@@ -1462,5 +1462,5 @@
   }
   SAFE_DESTROY(uTxt,result);
-  result=BSpecialFunction::TestResult(_name_,result,tre,NIL,BTRUE);
+//result=BSpecialFunction::TestResult(_name_,result,tre,NIL,BTRUE);
   return(result);
 }
Index: tol/btol/bgrammar/syn.cpp
===================================================================
--- tol/btol/bgrammar/syn.cpp	(revision 017310d356d2242845b196b3d6226e6cd80e9aae)
+++ tol/btol/bgrammar/syn.cpp	(revision 8bf03c17f96ec222736682c322b19ddddf30bea4)
@@ -495,14 +495,19 @@
     &pageNum);
   if( objMask.obj_ &&
+      (pageNum >= 0) && (pageNum <= 65535) && 
+      (mode >= 1) && (mode < BLASTMODE) && 
+      (size >= 1) && (sizeof(objMask.obj_) == size))
+  {
+    if(
+     (objMask.obj_->GetPageNum() == pageNum) &&
      (objMask.obj_->Grammar() == graMask.gra_) &&
      (objMask.obj_->Mode() == mode) &&
-     (sizeof(objMask.obj_) == size) &&
-     (objMask.obj_->GetPageNum() == pageNum)&&
 #if (__USE_POOL__==__POOL_BFSMEM__)
      (objMask.obj_->GetMemHandler() == mhnMask.mhn_)&&
 #endif
      (objMask.obj_->IsAssigned()!=0))
-  {
-    obj = objMask.obj_;
+    {
+      obj = objMask.obj_;
+    }
   }
   return((BSyntaxObject*)obj);
Index: tol/btol/bgrammar/tol_bgencon.h
===================================================================
--- tol/btol/bgrammar/tol_bgencon.h	(revision 017310d356d2242845b196b3d6226e6cd80e9aae)
+++ tol/btol/bgrammar/tol_bgencon.h	(revision 8bf03c17f96ec222736682c322b19ddddf30bea4)
@@ -667,5 +667,5 @@
     return(this->contens_);
   }
-  UndeclareClassNewDelete;
+  RedeclareClassNewDelete(BTmpContens<Any>);
 };
 
Index: tol/btol/real_type/datgrav.cpp
===================================================================
--- tol/btol/real_type/datgrav.cpp	(revision 017310d356d2242845b196b3d6226e6cd80e9aae)
+++ tol/btol/real_type/datgrav.cpp	(revision 8bf03c17f96ec222736682c322b19ddddf30bea4)
@@ -863,4 +863,23 @@
   }
   return(result);
+}
+
+//--------------------------------------------------------------------
+  DeclareContensClass(BDat, BDatTemporary, BDatAddressIsAlive);
+  DefExtOpr(1, BDatAddressIsAlive, "AddressIsAlive", 1, 1, "Text",
+  "(Text address)",
+  I2("Returns true if the address given matches for an alive TOL object."
+     "The address must be obtained by mean of calling GetAddressFromObject",
+     "Devuelve verdadero si la dirección dada por el argumento 'address' "
+     "corresponde efectivamente a un objeto TOL vivo."
+     "Dicha dirección interna se habrá obtenido previamente llamando a "
+     "la función GetAddressFromObject."),
+     BOperClassify::System_);
+  void BDatAddressIsAlive::CalcContens()
+//--------------------------------------------------------------------
+{
+  const BText&  address = Text(Arg(1));
+  BSyntaxObject* result = BSyntaxObject::GetObjectFromAddress(address);
+  contens_ = result!=NULL;
 }
 
