Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Allocation.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Allocation.h	(revision 110)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Allocation.h	(revision 111)
@@ -14,5 +14,4 @@
 // =====[ ALLOCATION / DELETE of ARRAY ]=================================
 // ======================================================================
-
 #define ALLOC1(var,type,s1)                      \
   var = new type [s1]
@@ -50,4 +49,7 @@
         }                                               \
     }
+
+#define DELETE0(var)                            \
+  delete var;
   
 #define DELETE1(var,s1)                          \
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Types.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Types.h	(revision 110)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Types.h	(revision 111)
@@ -44,5 +44,5 @@
 			     
   // ~~~~~ prediction_unit   
-  typedef uint8_t            Thistory_t;
+  typedef uint32_t           Thistory_t;
   typedef Tptr_t             Tprediction_ptr_t;
   typedef uint8_t            Tbranch_state_t;
@@ -165,8 +165,8 @@
   template<> inline morpheo::behavioural::Tpriority_t fromString<morpheo::behavioural::Tpriority_t>(const std::string& x)
   {
-    if ( (x.compare("0")                    == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::PRIORITY_STATIC))) == 0) or
          (x.compare("priority_static")      == 0))
       return morpheo::behavioural::PRIORITY_STATIC;
-    if ( (x.compare("1")                    == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::PRIORITY_ROUND_ROBIN))) == 0) or
          (x.compare("priority_round_robin") == 0))
       return morpheo::behavioural::PRIORITY_ROUND_ROBIN;
@@ -186,8 +186,8 @@
   template<> inline morpheo::behavioural::Tload_balancing_t fromString<morpheo::behavioural::Tload_balancing_t>(const std::string& x)
   {
-    if ( (x.compare("0")                      == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::LOAD_BALANCING_BALANCE))) == 0) or
          (x.compare("load_balancing_balance") == 0))
       return morpheo::behavioural::LOAD_BALANCING_BALANCE;
-    if ( (x.compare("1")                                   == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::LOAD_BALANCING_MAXIMUM_FOR_PRIORITY))) == 0) or
          (x.compare("load_balancing_maximum_for_priority") == 0))
       return morpheo::behavioural::LOAD_BALANCING_MAXIMUM_FOR_PRIORITY;
@@ -211,20 +211,20 @@
   template<> inline morpheo::behavioural::Tvictim_t fromString<morpheo::behavioural::Tvictim_t>(const std::string& x)
   {
-    if ( (x.compare("0")                  == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::VICTIM_RANDOM     ))) == 0) or
          (x.compare("victim_random")      == 0))
       return morpheo::behavioural::VICTIM_RANDOM;
-    if ( (x.compare("1")                  == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::VICTIM_ROUND_ROBIN))) == 0) or
          (x.compare("victim_round_robin") == 0))
       return morpheo::behavioural::VICTIM_ROUND_ROBIN;
-    if ( (x.compare("2")                  == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::VICTIM_NLU        ))) == 0) or
          (x.compare("victim_nlu")         == 0))
       return morpheo::behavioural::VICTIM_NLU;
-    if ( (x.compare("3")                  == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::VICTIM_PSEUDO_LRU ))) == 0) or
          (x.compare("victim_pseudo_lru")  == 0))
       return morpheo::behavioural::VICTIM_PSEUDO_LRU;
-    if ( (x.compare("4")                  == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::VICTIM_LRU        ))) == 0) or
          (x.compare("victim_lru")         == 0))
       return morpheo::behavioural::VICTIM_LRU;
-    if ( (x.compare("5")                  == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::VICTIM_FIFO       ))) == 0) or
          (x.compare("victim_fifo")        == 0))
       return morpheo::behavioural::VICTIM_FIFO;
@@ -251,29 +251,29 @@
   template<> inline morpheo::behavioural::Tpredictor_t fromString<morpheo::behavioural::Tpredictor_t>(const std::string& x)
   {
-    if ( (x.compare("0")                     == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::PREDICTOR_NEVER_TAKE ))) == 0) or
          (x.compare("predictor_never_take")  == 0))
       return morpheo::behavioural::PREDICTOR_NEVER_TAKE;
-    if ( (x.compare("1")                     == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::PREDICTOR_ALWAYS_TAKE))) == 0) or
          (x.compare("predictor_always_take") == 0))
       return morpheo::behavioural::PREDICTOR_ALWAYS_TAKE;
-    if ( (x.compare("2")                     == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::PREDICTOR_STATIC     ))) == 0) or
          (x.compare("predictor_static")      == 0))
       return morpheo::behavioural::PREDICTOR_STATIC;
-    if ( (x.compare("3")                     == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::PREDICTOR_LAST_TAKE  ))) == 0) or
          (x.compare("predictor_last_take")   == 0))
       return morpheo::behavioural::PREDICTOR_LAST_TAKE;
-    if ( (x.compare("4")                     == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::PREDICTOR_COUNTER    ))) == 0) or
          (x.compare("predictor_counter")     == 0))
       return morpheo::behavioural::PREDICTOR_COUNTER;
-    if ( (x.compare("5")                     == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::PREDICTOR_LOCAL      ))) == 0) or
          (x.compare("predictor_local")       == 0))
       return morpheo::behavioural::PREDICTOR_LOCAL;
-    if ( (x.compare("6")                     == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::PREDICTOR_GLOBAL     ))) == 0) or
          (x.compare("predictor_global")      == 0))
       return morpheo::behavioural::PREDICTOR_GLOBAL;
-    if ( (x.compare("7")                     == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::PREDICTOR_META       ))) == 0) or
          (x.compare("predictor_meta")        == 0))
       return morpheo::behavioural::PREDICTOR_META;
-    if ( (x.compare("8")                     == 0) or
+    if ( (x.compare(toString(static_cast<uint32_t>(morpheo::behavioural::PREDICTOR_CUSTOM     ))) == 0) or
          (x.compare("predictor_custom")      == 0))
       return morpheo::behavioural::PREDICTOR_CUSTOM;
Index: trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Version.h
===================================================================
--- trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Version.h	(revision 110)
+++ trunk/IPs/systemC/processor/Morpheo/Behavioural/include/Version.h	(revision 111)
@@ -10,8 +10,8 @@
 #define MORPHEO_MAJOR_VERSION "0"
 #define MORPHEO_MINOR_VERSION "2"
-#define MORPHEO_REVISION      "110"
+#define MORPHEO_REVISION      "111"
 #define MORPHEO_CODENAME      "Castor"
 
-#define MORPHEO_DATE_DAY      "19"  
+#define MORPHEO_DATE_DAY      "27"  
 #define MORPHEO_DATE_MONTH    "02"
 #define MORPHEO_DATE_YEAR     "2009" 
