Index: code/branches/objecthierarchie/src/Iterator.h
===================================================================
--- code/branches/objecthierarchie/src/Iterator.h	(revision 224)
+++ code/branches/objecthierarchie/src/Iterator.h	(revision 225)
@@ -28,4 +28,10 @@
             }
 
+            Iterator<T> operator++()
+            {
+                this->elementForwards_ = this->elementForwards_->next_;
+                return *this;
+            }
+
             Iterator<T> operator--(int step)
             {
@@ -44,6 +50,14 @@
                         this->elementBackwards_ = this->elementBackwards_->prev_;
                 }
+            }
 
-                return copy;
+            Iterator<T> operator--()
+            {
+                if (this->iteratingForwards_)
+                    this->iteratingForwards_ = false;
+                else
+                    this->elementBackwards_ = this->elementBackwards_->prev_;
+
+                return *this;
             }
 
@@ -51,7 +65,7 @@
             {
                 if (this->iteratingForwards_)
-                    return /*dynamic_cast<T*>*/(this->elementForwards_->object_);
+                    return this->elementForwards_->object_;
                 else
-                    return /*dynamic_cast<T*>*/(this->elementBackwards_->object_);
+                    return this->elementBackwards_->object_;
             }
 
@@ -59,7 +73,7 @@
             {
                 if (this->iteratingForwards_)
-                    return /*dynamic_cast<T*>*/(this->elementForwards_->object_);
+                    return this->elementForwards_->object_;
                 else
-                    return /*dynamic_cast<T*>*/(this->elementBackwards_->object_);
+                    return this->elementBackwards_->object_;
 
             }
Index: code/branches/objecthierarchie/src/orxonox.cc
===================================================================
--- code/branches/objecthierarchie/src/orxonox.cc	(revision 224)
+++ code/branches/objecthierarchie/src/orxonox.cc	(revision 225)
@@ -543,25 +543,25 @@
         std::cout << "1\n";
         int count = 0;
-        for (Iterator<BaseObject> it; it != 0; it++)
+        for (Iterator<BaseObject> it; it != 0; ++it)
             count++;
         std::cout << "Anzahl BaseObjects: " << count << "\n";
 
         count = 0;
-        for (Iterator<A1> it; it != 0; it++)
+        for (Iterator<A1> it; it != 0; ++it)
             count++;
         std::cout << "Anzahl A1: " << count << "\n";
 
         count = 0;
-        for (Iterator<A1B1> it; it; it++)
+        for (Iterator<A1B1> it; it; ++it)
             count++;
         std::cout << "Anzahl A1B1: " << count << "\n";
 
         count = 0;
-        for (Iterator<A1B1C1> it; it; it++)
+        for (Iterator<A1B1C1> it; it; ++it)
             count++;
         std::cout << "Anzahl A1B1C1: " << count << "\n";
 
         count = 0;
-        for (Iterator<A2> it; it; it++)
+        for (Iterator<A2> it; it; ++it)
             count++;
         std::cout << "Anzahl A2: " << count << "\n";
@@ -585,9 +585,9 @@
         }
 
-        for (Iterator<A2B1C1> it; it; it++)
+        for (Iterator<A2B1C1> it; it; ++it)
             std::cout << "Name: " << it->name_ << "\n";
 
         std::cout << "3\n";
-        for (Iterator<A2B1C1> it; it; it--)
+        for (Iterator<A2B1C1> it; it; --it)
             std::cout << "Name: " << it->name_ << "\n";
 
@@ -596,9 +596,9 @@
 
         std::cout << "5\n";
-        for (Iterator<A2B1C1> it; it; it++)
+        for (Iterator<A2B1C1> it; it; ++it)
             std::cout << "Name: " << it->name_ << "\n";
 
         std::cout << "6\n";
-        for (Iterator<A2B1C1> it; it; it--)
+        for (Iterator<A2B1C1> it; it; --it)
             std::cout << "Name: " << it->name_ << "\n";
 
@@ -607,9 +607,9 @@
 
         std::cout << "8\n";
-        for (Iterator<A2B1C1> it; it; it++)
+        for (Iterator<A2B1C1> it; it; ++it)
             std::cout << "Name: " << it->name_ << "\n";
 
         std::cout << "9\n";
-        for (Iterator<A2B1C1> it; it; it--)
+        for (Iterator<A2B1C1> it; it; --it)
             std::cout << "Name: " << it->name_ << "\n";
 
@@ -618,9 +618,9 @@
 
         std::cout << "11\n";
-        for (Iterator<A2B1C1> it; it; it++)
+        for (Iterator<A2B1C1> it; it; ++it)
             std::cout << "Name: " << it->name_ << "\n";
 
         std::cout << "12\n";
-        for (Iterator<A2B1C1> it; it; it--)
+        for (Iterator<A2B1C1> it; it; --it)
             std::cout << "Name: " << it->name_ << "\n";
 
