Index: trunk/src/lib/lang/base_object.cc
===================================================================
--- trunk/src/lib/lang/base_object.cc	(revision 6076)
+++ trunk/src/lib/lang/base_object.cc	(revision 6077)
@@ -101,5 +101,5 @@
  * @returns true if it is, false otherwise
 */
-bool BaseObject::isA (long classID) const
+bool BaseObject::isA (ClassID classID) const
 {
   // if classID is a derivable object from a SUPERCLASS
@@ -132,5 +132,5 @@
 bool BaseObject::isA (const char* className) const
 {
-  long classID = ClassList::StringToID(className);
+  ClassID classID = ClassList::StringToID(className);
   if (classID != CL_NULL)
     return this->isA(classID);
Index: trunk/src/lib/lang/base_object.h
===================================================================
--- trunk/src/lib/lang/base_object.h	(revision 6076)
+++ trunk/src/lib/lang/base_object.h	(revision 6077)
@@ -35,9 +35,11 @@
   inline int getClassID() const { return this->classID; };
 
-  bool isA (long classID) const;
+  bool isA (ClassID classID) const;
   bool isA (const char* className) const;
   void whatIs() const;
 
   bool operator==(const char* objectName);
+  /** @param classID comparer for a ClassID @returns true on match, false otherwise */
+  bool operator==(ClassID classID) { return this->isA(classID); };
 
  protected:
Index: trunk/src/lib/lang/class_list.cc
===================================================================
--- trunk/src/lib/lang/class_list.cc	(revision 6076)
+++ trunk/src/lib/lang/class_list.cc	(revision 6077)
@@ -37,5 +37,5 @@
  *  Creates a new ClassList
 */
-ClassList::ClassList(const long& classID, const char* className)
+ClassList::ClassList(ClassID classID, const char* className)
 {
   this->className = className;
@@ -94,13 +94,7 @@
     if (objectPointer->isA((*cl).classID))
     {
-      std::list<BaseObject*>::iterator bo;
-      for (bo = (*cl).objectList.begin(); bo != (*cl).objectList.end(); bo++)
-      {
-        if ((*bo) == objectPointer)
-        {
+      std::list<BaseObject*>::iterator bo = std::find ((*cl).objectList.begin(), (*cl).objectList.end(), objectPointer);
+      if (bo != (*cl).objectList.end())
           (*cl).objectList.erase(bo);
-          break;
-        }
-      }
     }
   }
@@ -175,5 +169,9 @@
 }
 
-
+/**
+ * !!PRIVATE!!
+ * @param classID the ClassID to search for
+ * @returns the ClassList with classID as specifyer, or NULL if not
+ */
 ClassList* ClassList::getClassList(ClassID classID)
 {
@@ -183,4 +181,9 @@
 
 
+/**
+ * !!PRIVATE!!
+ * @param className the ClassName to search for
+ * @returns the ClassList with className as specifyer, or NULL if not
+ */
 ClassList* ClassList::getClassList(const char* className)
 {
@@ -288,5 +291,5 @@
  * @return the ClassID. CL_NULL, if the class was not found.
  */
-long ClassList::StringToID(const char* className)
+ClassID ClassList::StringToID(const char* className)
 {
   ClassList* cl = ClassList::getClassList(className);
@@ -314,5 +317,5 @@
  * @param classID the class that should be displayed (if CL_NULL (default) all classes will be displayed)
  */
-void ClassList::debug(unsigned int debugLevel, long classID)
+void ClassList::debug(unsigned int debugLevel, ClassID classID)
 {
   if (debugLevel > 3)
Index: trunk/src/lib/lang/class_list.h
===================================================================
--- trunk/src/lib/lang/class_list.h	(revision 6076)
+++ trunk/src/lib/lang/class_list.h	(revision 6077)
@@ -33,5 +33,5 @@
 
   public:
-    ClassList(const long& classID, const char* className);
+    ClassList(ClassID classID, const char* className);
     virtual ~ClassList();
 
@@ -51,6 +51,6 @@
 
     static const char*                    IDToString(ClassID classID = CL_NULL);
-    static long                           StringToID(const char* className);
-    static void                           debug(unsigned int debugLevel = 0, long classID = CL_NULL);
+    static ClassID                        StringToID(const char* className);
+    static void                           debug(unsigned int debugLevel = 0, ClassID classID = CL_NULL);
     static void                           debugS(const char* className = NULL, unsigned int debugLevel = 0);
 
@@ -65,5 +65,5 @@
   private:
 
-    long                            classID;                //!< ClassID stored in this ClassList \see ClassID
+    ClassID                         classID;                //!< ClassID stored in this ClassList
     const char*                     className;              //!< Name of the Class Stored here
 
