Index: tol/CMakeLists.txt
===================================================================
--- tol/CMakeLists.txt	(revision 8e9626bb215b6749ab5c8f2f59e28252b382042b)
+++ tol/CMakeLists.txt	(revision b2fececb7a3cea740f97775976b017ff5f2bca48)
@@ -73,4 +73,5 @@
   message( STATUS "add_library( ${name} OBJECT ${ARGN} )" )
   if( CMAKE_BUILD_TYPE MATCHES Debug )
+    # -fstack-protector-all -Wstack-protector -fno-omit-frame-pointer
     set_property(TARGET ${name} PROPERTY COMPILE_FLAGS "-fPIC -Wall")
   else( )
Index: tol/OIS/oisloader.cpp
===================================================================
--- tol/OIS/oisloader.cpp	(revision 8e9626bb215b6749ab5c8f2f59e28252b382042b)
+++ tol/OIS/oisloader.cpp	(revision b2fececb7a3cea740f97775976b017ff5f2bca48)
@@ -470,5 +470,6 @@
 {
   TRACE_OIS_STREAM("READ",stream,"BClass", BText("")<<cls.FullName());
-//Std(BText(""\nBOisLoader::Read Class ")+cls.Name()+" "+cls.FullName());
+  //Std(BText("BOisLoader::Read Class ")+cls.Name()+" "+cls.FullName() + "\n");
+  
   BMemberOwner::BClassByNameHash& parents = *cls.parentHash_;
   Ensure(Read(cls,parents,stream));
@@ -568,5 +569,13 @@
   ERead(pr, stream);
   ERead(cl, stream);
-  BToken* token = new BToken(name,(BTokenType)tt,pr);
+  BToken* token = NULL;
+  if ( tt == TYPE )
+    {
+    token = new BTypeToken( name, BTypeToken::BTOIS );
+    }
+  else
+    {
+    token = new BToken(name,(BTokenType)tt,pr);
+    }
   token->PutClose(GetTokenCloseFromId(cl));
 #ifdef TRACE_OIS_TOKEN
@@ -647,5 +656,13 @@
   pos+=sizeof(char);
 
-  BToken* token = new BToken(name,(BTokenType)tt,pr);
+  BToken* token = NULL;
+  if ( tt == TYPE )
+    {
+    token = new BTypeToken( name, BTypeToken::BTOIS );
+    }
+  else
+    {
+     token = new BToken(name,(BTokenType)tt,pr);
+    }
   token->PutClose(GetTokenCloseFromId(cl));
 #ifdef TRACE_OIS_TOKEN
Index: tol/bparser/tol_btoken.h
===================================================================
--- tol/bparser/tol_btoken.h	(revision 8e9626bb215b6749ab5c8f2f59e28252b382042b)
+++ tol/bparser/tol_btoken.h	(revision b2fececb7a3cea740f97775976b017ff5f2bca48)
@@ -243,5 +243,6 @@
     BSYSTEM,
     BSTRUCT,
-    BCLASS
+    BCLASS,
+    BTOIS
   };
   BType type_;
Index: tol/btol/bgrammar/oprimp.cpp
===================================================================
--- tol/btol/bgrammar/oprimp.cpp	(revision 8e9626bb215b6749ab5c8f2f59e28252b382042b)
+++ tol/btol/bgrammar/oprimp.cpp	(revision b2fececb7a3cea740f97775976b017ff5f2bca48)
@@ -783,5 +783,5 @@
       if(!str) { cls = FindClass(tokName,-1); }
     }
-         if(str) { gra = GraSet(); }
+    if(str) { gra = GraSet(); }
     else if(cls) { gra = GraNameBlock(); }
     left = Tree::treLeft(left);
Index: tol/btol/matrix_type/tol_mat.hpp
===================================================================
--- tol/btol/matrix_type/tol_mat.hpp	(revision 8e9626bb215b6749ab5c8f2f59e28252b382042b)
+++ tol/btol/matrix_type/tol_mat.hpp	(revision b2fececb7a3cea740f97775976b017ff5f2bca48)
@@ -144,7 +144,8 @@
     return;
   }
-  double rc=(double)r*(double)c;
-  if(rc>=max_size) { rc=0; }
-  data_.ReallocBuffer((int)rc);
+  //double rc=(double)r*(double)c;
+  //if(rc>=max_size) { rc=0; }
+  //data_.ReallocBuffer((int)rc);
+  data_.ReallocBuffer( r * c );
   buffer_ = data_.GetBuffer();
   if(r && c && !buffer_) 
Index: tol/btol/matrix_type/tol_matgen.hpp
===================================================================
--- tol/btol/matrix_type/tol_matgen.hpp	(revision 8e9626bb215b6749ab5c8f2f59e28252b382042b)
+++ tol/btol/matrix_type/tol_matgen.hpp	(revision b2fececb7a3cea740f97775976b017ff5f2bca48)
@@ -135,10 +135,11 @@
     return;
   }
-  double rc=(double)r*(double)c;
-  if(rc>=max_size) { rc=0; }
-  data_.ReallocBuffer((int)rc);
+  //double rc=(double)r*(double)c;
+  // if(rc>=max_size) { rc=0; }
+  // data_.ReallocBuffer((int)rc);
+  data_.ReallocBuffer( r * c );
   buffer_ = data_.GetBuffer();
   if(r && c && !buffer_) 
-  { 
+  {
     Error(I2("FATAL: Cannot allocate memory for a matrix ",
              "FATAL: No se pudo alojar memoria para una matriz ")+
