Index: trunk/src/lib/lang/class_list.cc
===================================================================
--- trunk/src/lib/lang/class_list.cc	(revision 5770)
+++ trunk/src/lib/lang/class_list.cc	(revision 5779)
@@ -40,5 +40,4 @@
   this->className = className;
   this->classID = classID;
-  this->objectList = new tList<BaseObject>;
 
   ++ClassList::classCount;
@@ -50,10 +49,10 @@
 ClassList::~ClassList ()
 {
-  delete this->objectList;
-  if(ClassList::classList != NULL)
-  {
-    delete ClassList::classList;
-    ClassList::classList = NULL;
-  }
+  /// FIXME
+//   if(ClassList::classList != NULL)
+//   {
+//     delete ClassList::classList;
+//     ClassList::classList = NULL;
+//   }
   --ClassList::classCount;
 }
@@ -66,5 +65,5 @@
 
 //! a List of all strings of all classes, that have registered so far.
-tList<const char>* ClassList::classList = NULL;
+std::list<const char*> ClassList::classList;
 
 /**
@@ -100,5 +99,5 @@
     }
   }
-  regClass->objectList->add(objectPointer);
+  regClass->objectList.push_back(objectPointer);
 }
 
@@ -114,5 +113,5 @@
     if (objectPointer->isA(tmp->classID))
     {
-      tmp->objectList->remove(objectPointer);
+      tmp->objectList.remove(objectPointer);
     }
     tmp = tmp->next;
@@ -127,13 +126,8 @@
  * befor it changes anything.
  */
-const tList<const char>* ClassList::getClassList()
-{
-  if (unlikely(ClassList::classList != NULL && ClassList::classList->getSize() != ClassList::classCount))
-  {
-    delete ClassList::classList;
-    ClassList::classList = NULL;
-  }
-  if (unlikely(ClassList::classList == NULL))
-    ClassList::classList = new tList<const char>;
+const std::list<const char*>* ClassList::getClassList()
+{
+  if (ClassList::classList.size() != ClassList::classCount)
+    ClassList::classList.erase(ClassList::classList.begin(), ClassList::classList.end());
 
   if(likely(ClassList::first != NULL))
@@ -142,9 +136,9 @@
     while (likely(tmpCL != NULL))
     {
-      ClassList::classList->add(tmpCL->className);
-      tmpCL = tmpCL->next;
-    }
-  }
-  return ClassList::classList;
+      ClassList::classList.push_back(tmpCL->className);
+      tmpCL = tmpCL->next;
+    }
+  }
+  return &ClassList::classList;
 }
 
@@ -154,5 +148,5 @@
  * @return the List accessed by classID, or NULL if not found
  */
-tList<BaseObject>* ClassList::getList(long classID)
+std::list<BaseObject*>* ClassList::getList(long classID)
 {
   if(unlikely(ClassList::first == NULL))
@@ -164,5 +158,5 @@
     {
       if (unlikely(tmpCL->classID == classID))
-        return tmpCL->objectList;
+        return &tmpCL->objectList;
       tmpCL = tmpCL->next;
     }
@@ -175,5 +169,6 @@
  * @param className the name of the class to get the list from
  * @return the List accessed by classID, or NULL if not found
- */tList<BaseObject>* ClassList::getList(const char* className)
+ */
+std::list<BaseObject*>* ClassList::getList(const char* className)
 {
   if(unlikely(ClassList::first == NULL))
@@ -185,5 +180,5 @@
     {
       if (unlikely(!strcmp(tmpCL->className, className)))
-        return tmpCL->objectList;
+        return &tmpCL->objectList;
       tmpCL = tmpCL->next;
     }
@@ -210,18 +205,8 @@
       if (tmp->classID == classID || classID == CL_NULL)
       {
-        tIterator<BaseObject>* iterator = tmp->objectList->getIterator();
-        BaseObject* enumBO = iterator->firstElement();
-        const char* tmpName;
-        while (enumBO != NULL)
-        {
-          tmpName = enumBO->getName();
-          if (tmpName && !strcmp(tmpName, name))
-          {
-            delete iterator;
-            return enumBO;
-          }
-          enumBO = iterator->nextElement();
-        }
-        delete iterator;
+        list<BaseObject*>::iterator bo;
+        for (bo = tmp->objectList.begin(); bo != tmp->objectList.end(); bo++)
+          if ((*bo)->getName() && !strcmp((*bo)->getName(), name))
+            return (*bo);
         break;
       }
@@ -251,20 +236,10 @@
       if (tmp->classID == classID || classID == CL_NULL)
       {
-        tIterator<BaseObject>* iterator = tmp->objectList->getIterator();
-        const BaseObject* enumBO = iterator->firstElement();
-        while (enumBO != NULL)
-        {
-          if (enumBO == object)
-          {
-            delete iterator;
+        list<BaseObject*>::iterator bo;
+        for (bo = tmp->objectList.begin(); bo != tmp->objectList.end(); bo++)
+          if ((*bo) == object)
             return true;
-          }
-          enumBO = iterator->nextElement();
-        }
         if (likely(tmp->classID == classID))
-        {
-          delete iterator;
           break;
-        }
       }
       tmp = tmp->next;
@@ -354,9 +329,9 @@
   while (likely(tmp != NULL))
   {
-    if ((debugLevel >= 1 || tmp->objectList->getSize() > 0 ) &&
+    if ((debugLevel >= 1 || tmp->objectList.size() > 0 ) &&
          (classID == CL_NULL || unlikely (classID == tmp->classID)))
     {
       lenCount = 1;
-      while (pow(10,lenCount) <= tmp->objectList->getSize())
+      while (pow(10, lenCount) <= tmp->objectList.size())
         ++lenCount;
       for (int i=0; i < 30-strlen(tmp->className) - lenCount; i++)
@@ -364,20 +339,17 @@
       niceString[30-strlen(tmp->className) - lenCount] = '\0';
 
-      PRINT(0)("| CLASS %s:%s %d\n", tmp->className, niceString, tmp->objectList->getSize());
-
-      if (debugLevel >=2 && tmp->objectList->getSize() > 0)
+      PRINT(0)("| CLASS %s:%s %d\n", tmp->className, niceString, tmp->objectList.size());
+
+      if (debugLevel >=2 && tmp->objectList.size() > 0)
       {
         PRINT(0)("|  Listing Instances:\n");
-        tIterator<BaseObject>* iterator = tmp->objectList->getIterator();
-        BaseObject* enumBO = iterator->firstElement();
-        while (enumBO)
+        list<BaseObject*>::const_iterator bo;
+        for (bo = tmp->objectList.begin(); bo != tmp->objectList.end(); bo++)
         {
-          PRINT(0)("|   (class %s): NAME(%s)->%p ", enumBO->getClassName(), enumBO->getName(), enumBO);
+          PRINT(0)("|   (class %s): NAME(%s)->%p ", (*bo)->getClassName(), (*bo)->getName(), (*bo));
           if (debugLevel == 3)
-            ClassList::whatIs(enumBO);
+            ClassList::whatIs(*bo);
           PRINT(0)("\n");
-          enumBO = iterator->nextElement();
         }
-        delete iterator;
       }
     }
Index: trunk/src/lib/lang/class_list.h
===================================================================
--- trunk/src/lib/lang/class_list.h	(revision 5770)
+++ trunk/src/lib/lang/class_list.h	(revision 5779)
@@ -9,9 +9,8 @@
 
 #include "class_id.h"
+#include <list>
 
 // FORWARD DECLARATION
 class BaseObject;
-template<class T> class tList;
-
 
 //! A class that handles Pointers to Objects of all type.
@@ -35,23 +34,24 @@
 
     // STATIC FUNCTIONS
-    static void                     addToClassList(BaseObject* objectPointer, const long& classID, const char* className);
-    static void                     removeFromClassList(BaseObject* objectPointer);
+    static void                          addToClassList(BaseObject* objectPointer, const long& classID, const char* className);
+    static void                          removeFromClassList(BaseObject* objectPointer);
 
-    static tList<BaseObject>*       getList(long classID = CL_NULL);
-    static tList<BaseObject>*       getList(const char* className);
-    static const tList<const char>* getClassList();
-    static BaseObject*              getObject(const char* name, long classID = CL_NULL);
-    static bool                     exists(const BaseObject* object, long classID = CL_NULL);
+    static std::list<BaseObject*>*       getList(long classID = CL_NULL);
+    static std::list<BaseObject*>*       getList(const char* className);
+    static const std::list<const char*>* getClassList();
+    static BaseObject*                   getObject(const char* name, long classID = CL_NULL);
+    static bool                          exists(const BaseObject* object, long classID = CL_NULL);
 
-    static void                     whatIs(const BaseObject* object);
+    static void                          whatIs(const BaseObject* object);
 
-    static const char*              IDToString(long classID = CL_NULL);
-    static long                     StringToID(const char* className);
-    static void                     debug(unsigned int debugLevel = 0, long classID = CL_NULL);
-    static void                     debugS(const char* className = 0x0, unsigned int debugLevel = 0);
+    static const char*                   IDToString(long classID = CL_NULL);
+    static long                          StringToID(const char* className);
+    static void                          debug(unsigned int debugLevel = 0, long classID = CL_NULL);
+    static void                          debugS(const char* className = 0x0, unsigned int debugLevel = 0);
+
 
 
   private:
-    tList<BaseObject>*              objectList;             //!< A list of Objects belonging to this Class
+    std::list<BaseObject*>          objectList;             //!< A list of Objects belonging to this Class
 
     long                            classID;                //!< ClassID stored in this ClassList \see ClassID
@@ -62,5 +62,5 @@
     // STATIC MEMBERS
     static ClassList*               first;                  //!< The first Class in the List
-    static tList<const char>*       classList;              //!< a List of all Names of all classes, that have registered so far.
+    static std::list<const char*>   classList;              //!< a List of all Names of all classes, that have registered so far.
     static unsigned int             classCount;             //!< The Count of classes that have been registered (should match the lower description)
 };
