Index: /branches/coll_rect/src/lib/collision_reaction/collision.cc
===================================================================
--- /branches/coll_rect/src/lib/collision_reaction/collision.cc	(revision 9982)
+++ /branches/coll_rect/src/lib/collision_reaction/collision.cc	(revision 9983)
@@ -43,11 +43,9 @@
   void Collision::flushCollisionEvents()
   {
-    this->entityA = NULL;
-    this->entityB = NULL;
+    this->_entityA = NULL;
+    this->_entityB = NULL;
 
-    this->entityACollide = false;
-    this->entityBCollide = false;
-
-    this->bDispatched = true;
+    this->_entityACollide = false;
+    this->_entityBCollide = false;
 
     this->_collisionEvents.clear();
Index: /branches/coll_rect/src/lib/collision_reaction/collision.h
===================================================================
--- /branches/coll_rect/src/lib/collision_reaction/collision.h	(revision 9982)
+++ /branches/coll_rect/src/lib/collision_reaction/collision.h	(revision 9983)
@@ -42,12 +42,10 @@
     /* list stuff */
   public:
-    typedef std::vector<CollisionEvent*>                  collisionVector;  //!< the vector containing all collision events
-    typedef std::vector<CollisionEvent*>::iterator        iterator;         //!< iterator definition
-    typedef std::vector<CollisionEvent*>::const_iterator  const_iterator;   //!< constant iterator definition
+    typedef std::vector<CollisionEvent*>                  CollisionVector;  //!< the vector containing all collision events
+    typedef std::vector<CollisionEvent*>::iterator        Iterator;         //!< iterator definition
+    typedef std::vector<CollisionEvent*>::const_iterator  ConstIterator;   //!< constant iterator definition
 
     /** registers a @param event CollisionEvent to take place */
     inline void registerCollisionEvent(CollisionEvent* event) { this->_collisionEvents.push_back(event); this->bDispatched = false;}
-    /** @returns a vector of collision events */
-    inline const std::vector<CollisionEvent*>& getCollisionEvents() const { return this->_collisionEvents; }
 
     void flushCollisionEvents();
@@ -55,16 +53,11 @@
 
     /** @returns iterator pointing to the beginning of the collision event vector */
-    inline iterator       begin()        { return this->_collisionEvents.begin(); }
+    inline Iterator       begin()        { return this->_collisionEvents.begin(); }
     /** @returns const iterator pointing to the beginning of the collision event vector */
-    inline const_iterator begin() const  { return this->_collisionEvents.begin(); }
+    inline ConstIterator  begin() const  { return this->_collisionEvents.begin(); }
     /** @returns iterator pointing to the end of the collision event vector */
-    inline iterator       end()          { return this->_collisionEvents.end(); }
+    inline Iterator       end()          { return this->_collisionEvents.end(); }
     /** @returns const iterator pointing to the end of the collision event vector */
-    inline const_iterator end() const    { return this->_collisionEvents.end(); }
-
-
-  private:
-    collisionVector  _collisionEvents;               //!< the collision event list
-
+    inline ConstIterator  end() const    { return this->_collisionEvents.end(); }
 
 
@@ -72,33 +65,27 @@
   public:
     /** @return Collision WorldEntity A */
-    inline WorldEntity* getEntityA() const { return this->entityA; }
+    inline WorldEntity* getEntityA() const { return this->_entityA; }
     /** @return Collision WorldEntity B */
-    inline WorldEntity* getEntityB() const { return this->entityB; }
+    inline WorldEntity* getEntityB() const { return this->_entityB; }
     inline bool match(const WorldEntity& entityA, WorldEntity& entityB) const {
-      return ((this->entityA == &entityA && this->entityB == &entityB) || (this->entityA == &entityB && this->entityB == &entityA)); }
+      return ((this->_entityA == &entityA && this->_entityB == &entityB) || (this->_entityA == &entityB && this->_entityB == &entityA)); }
 
     /** @return true if Entity A collides */
-    inline bool isEntityACollide() const { return this->entityACollide; }
+    inline bool isEntityACollide() const { return this->_entityACollide; }
     /** sets the flag if it reacts @param flag true if it should react on entityA*/
-    inline void setEntityACollide(bool flag) { this->entityACollide = flag; }
+    inline void setEntityACollide(bool flag) { this->_entityACollide = flag; }
     /** @return true if Entity B collides */
-    inline bool isEntityBCollide() const { return this->entityBCollide; }
+    inline bool isEntityBCollide() const { return this->_entityBCollide; }
     /** sets the flag if it reacts @param flag true if it should react on entityB*/
-    inline void setEntityBCollide(bool flag) { this->entityACollide = flag; }
+    inline void setEntityBCollide(bool flag) { this->_entityACollide = flag; }
 
 
+  private:
+    WorldEntity*                 _entityA;                       //!< the collision body A
+    WorldEntity*                 _entityB;                       //!< the collision body B
+    bool                         _entityACollide;                //!< true if entity A is subscribed for collision reaction
+    bool                         _entityBCollide;                //!< true if entity B is subscribed for collision reaction
 
-    /** @returns true if this Collision has already been dispatched */
-    inline bool isDispatched() { return this->bDispatched; }
-    /** sets the dispatched flag to true */
-    inline void dispatched() { this->bDispatched = true; }
-
-  private:
-    WorldEntity*                 entityA;                       //!< the collision body A
-    WorldEntity*                 entityB;                       //!< the collision body B
-    bool                         entityACollide;                //!< true if entity A is subscribed for collision reaction
-    bool                         entityBCollide;                //!< true if entity B is subscribed for collision reaction
-
-    bool                         bDispatched;                   //!< true if this collision has already been dispatched
+    collisionVector              _collisionEvents;               //!< the collision event list
 
   };
Index: /branches/coll_rect/src/lib/collision_reaction/collision_tube.cc
===================================================================
--- /branches/coll_rect/src/lib/collision_reaction/collision_tube.cc	(revision 9982)
+++ /branches/coll_rect/src/lib/collision_reaction/collision_tube.cc	(revision 9983)
@@ -145,4 +145,6 @@
         if( (*ci)->getEntityA()->bReactibe((*it)->getEnityB(), i) || (*ci)->getEntityB()->bReactibe((*it)->getEnityA(), i))
           (*ci)->reactToCollision(*ci);
+
+        (*ci)->flushCollisionEvents();
       }
     }
Index: /branches/coll_rect/src/lib/collision_reaction/collision_tube.h
===================================================================
--- /branches/coll_rect/src/lib/collision_reaction/collision_tube.h	(revision 9982)
+++ /branches/coll_rect/src/lib/collision_reaction/collision_tube.h	(revision 9983)
@@ -70,4 +70,5 @@
     void handleCollisions();
 
+
   private:
     std::vector<Collision*>         _collisionList;                      //!< the list of collisions since the last processing
