Index: trunk/src/lib/lang/class_list.cc
===================================================================
--- trunk/src/lib/lang/class_list.cc	(revision 7164)
+++ trunk/src/lib/lang/class_list.cc	(revision 7165)
@@ -53,5 +53,5 @@
 
 //! a List of all known Classes.
-std::vector<ClassList>* ClassList::classList = NULL;
+std::list<ClassList>* ClassList::classList = NULL;
 
 //! a List of all strings of all classes, that have registered so far.
@@ -70,5 +70,5 @@
 {
   if (unlikely(classList == NULL))
-    ClassList::classList = new std::vector<ClassList>();
+    ClassList::classList = new list<ClassList>();
 
   PRINTF(5)("subscribe a '%s'\n", className );
@@ -94,14 +94,12 @@
 void ClassList::removeFromClassList(BaseObject* objectPointer)
 {
-  for(unsigned int cl= 0; cl < ClassList::classList->size(); cl++)
-  {
-    if (objectPointer->isA((*ClassList::classList)[cl].classID))
-    {
-      std::list<BaseObject*>::iterator bo =
-          std::find ((*ClassList::classList)[cl].objectList.begin(),
-                       (*ClassList::classList)[cl].objectList.end(),
-                     objectPointer);
-      if (bo != (*ClassList::classList)[cl].objectList.end())
-        (*ClassList::classList)[cl].objectList.erase(bo);
+  list<ClassList>::iterator cl;
+  for(cl = ClassList::classList->begin(); cl != ClassList::classList->end(); cl++)
+  {
+    if (objectPointer->isA((*cl).classID))
+    {
+      std::list<BaseObject*>::iterator bo = std::find ((*cl).objectList.begin(), (*cl).objectList.end(), objectPointer);
+      if (bo != (*cl).objectList.end())
+          (*cl).objectList.erase(bo);
     }
   }
@@ -121,6 +119,7 @@
       ClassList::classNames.clear();
 
-      for (unsigned int cl = 0; cl < ClassList::classList->size(); cl++)
-        ClassList::classNames.push_back((*ClassList::classList)[cl].className);
+      list<ClassList>::const_iterator cl;
+      for (cl = ClassList::classList->begin(); cl != ClassList::classList->end(); cl++)
+        ClassList::classNames.push_back((*cl).className);
   }
 
@@ -178,10 +177,9 @@
  * !!PRIVATE!!
  * @param classID the ClassID to search for
- * @returns the ClassList with classID as specifier, or NULL if not
+ * @returns the ClassList with classID as specifyer, or NULL if not
  */
 ClassList* ClassList::getClassList(ClassID classID)
 {
-  std::vector<ClassList>::iterator classIT =
-       std::find (ClassList::classList->begin(), ClassList::classList->end(), classID);
+  std::list<ClassList>::iterator classIT = find (ClassList::classList->begin(), ClassList::classList->end(), classID);
   return (likely(classIT != classList->end()))? &(*classIT) : NULL;
 }
@@ -191,5 +189,5 @@
  * !!PRIVATE!!
  * @param className the ClassName to search for
- * @returns the ClassList with className as specifier, or NULL if not
+ * @returns the ClassList with className as specifyer, or NULL if not
  */
 ClassList* ClassList::getClassList(const char* className)
@@ -197,5 +195,5 @@
   if (className == NULL)
     return NULL;
-  std::vector<ClassList>::iterator classIT = find (ClassList::classList->begin(), ClassList::classList->end(), className);
+  std::list<ClassList>::iterator classIT = find (classList->begin(), classList->end(), className);
   return (likely(classIT != classList->end()))? &(*classIT) : NULL;
 }
@@ -224,8 +222,9 @@
   else
   {
-    std::list<BaseObject*>::iterator bo;
-    for (unsigned int cl = 0; cl < ClassList::classList->size(); cl++)
-    {
-      for (bo = (*ClassList::classList)[cl].objectList.begin(); bo != (*ClassList::classList)[cl].objectList.end(); bo++)
+    list<ClassList>::iterator cl;
+    for (cl = ClassList::classList->begin(); cl != ClassList::classList->end(); cl++)
+    {
+      std::list<BaseObject*>::iterator bo;
+      for (bo = (*cl).objectList.begin(); bo != (*cl).objectList.end(); bo++)
         if ((*bo)->getName() != NULL && !strcmp((*bo)->getName(), objectName))
           return (*bo);
@@ -256,10 +255,9 @@
   else
   {
-    for (unsigned int cl = 0; cl < ClassList::classList->size(); cl++)
-    {
-      std::list<BaseObject*>::const_iterator bo =
-          find ((*ClassList::classList)[cl].objectList.begin(),
-          (*ClassList::classList)[cl].objectList.end(), object);
-      if (bo != (*ClassList::classList)[cl].objectList.end())
+    list<ClassList>::iterator cl;
+    for (cl = ClassList::classList->begin(); cl != ClassList::classList->end(); cl++)
+    {
+      std::list<BaseObject*>::const_iterator bo = find ((*cl).objectList.begin(), (*cl).objectList.end(), object);
+      if (bo != (*cl).objectList.end())
         return true;
     }
@@ -274,10 +272,9 @@
 void ClassList::whatIs(const BaseObject* object)
 {
-  for (unsigned int cl = 0; cl < ClassList::classList->size(); cl++)
-    if (object->isA((*ClassList::classList)[cl].classID))
-  {
-    PRINT(0)("=%s::0x%.8X=-",
-    (*ClassList::classList)[cl].className,
-    (*ClassList::classList)[cl].classID);
+  list<ClassList>::iterator cl;
+  for (cl = ClassList::classList->begin(); cl != ClassList::classList->end(); cl++)
+    if (object->isA((*cl).classID))
+  {
+    PRINT(0)("=%s::0x%.8X=-", (*cl).className, (*cl).classID);
   }
 }
@@ -336,24 +333,24 @@
   unsigned int lenCount = 0;
 
-  for (unsigned int cl = 0; cl < ClassList::classList->size(); cl++)
-  {
-    if ((debugLevel >= 1 || (*ClassList::classList)[cl].objectList.size() > 0 ) &&
-         (classID == CL_NULL || unlikely (classID == (*ClassList::classList)[cl].classID)))
+  list<ClassList>::iterator cl;
+  for (cl = ClassList::classList->begin(); cl != ClassList::classList->end(); cl++)
+  {
+    if ((debugLevel >= 1 || (*cl).objectList.size() > 0 ) &&
+         (classID == CL_NULL || unlikely (classID == (*cl).classID)))
     {
       lenCount = 1;
-      while (pow(10, lenCount) <= (*ClassList::classList)[cl].objectList.size())
+      while (pow(10, lenCount) <= (*cl).objectList.size())
         ++lenCount;
-      for (int i=0; i < 30-strlen((*ClassList::classList)[cl].className) - lenCount; i++)
+      for (int i=0; i < 30-strlen((*cl).className) - lenCount; i++)
         (niceString[i]) = ' ';
-      niceString[30-strlen((*ClassList::classList)[cl].className) - lenCount] = '\0';
-
-      PRINT(0)("| CLASS %s::%s %d\n", (*ClassList::classList)[cl].className, niceString,
-            (*ClassList::classList)[cl].objectList.size());
-
-      if (debugLevel >=2 && (*ClassList::classList)[cl].objectList.size() > 0)
+      niceString[30-strlen((*cl).className) - lenCount] = '\0';
+
+      PRINT(0)("| CLASS %s::%s %d\n", (*cl).className, niceString, (*cl).objectList.size());
+
+      if (debugLevel >=2 && (*cl).objectList.size() > 0)
       {
         PRINT(0)("|  Listing Instances:\n");
         list<BaseObject*>::const_iterator bo;
-        for (bo = (*ClassList::classList)[cl].objectList.begin(); bo != (*ClassList::classList)[cl].objectList.end(); bo++)
+        for (bo = (*cl).objectList.begin(); bo != (*cl).objectList.end(); bo++)
         {
           PRINT(0)("|   %s::%s::(0x%.8X->%p ", (*bo)->getClassName(), (*bo)->getName(), (*bo)->getClassID(), (*bo));
Index: trunk/src/lib/lang/class_list.h
===================================================================
--- trunk/src/lib/lang/class_list.h	(revision 7164)
+++ trunk/src/lib/lang/class_list.h	(revision 7165)
@@ -10,5 +10,4 @@
 #include "class_id.h"
 #include <list>
-#include <vector>
 #ifndef NULL
 #define NULL     0    //!< NULL
@@ -59,6 +58,4 @@
     inline bool                           operator==(ClassID classID) { return (this->classID == classID); };
     bool                                  operator==(const char* className);
-    bool                                  operator<(ClassID classID) { return this->classID < classID; };
-
     inline ClassID                        getLeafClassID() const { return this->classID; };
 
@@ -76,5 +73,5 @@
 
     // STATIC MEMBERS
-    static std::vector<ClassList>*  classList;              //!< The list of ClassLists.
+    static std::list<ClassList>*    classList;              //!< The first Class in the List
     static std::list<const char*>   classNames;             //!< a List of all Names of all classes, that have registered so far.
 };
