Index: mitk/Core/Code/Interactions/mitkPointSetInteractor.cpp
===================================================================
--- mitk/Core/Code/Interactions/mitkPointSetInteractor.cpp	(revision 25766)
+++ mitk/Core/Code/Interactions/mitkPointSetInteractor.cpp	(working copy)
@@ -1121,32 +1121,47 @@
   mitk::PointSet *pointSet = dynamic_cast<mitk::PointSet*>(m_DataNode->GetData());
   if ( pointSet != NULL )
   {
-    int numberOfPoints = pointSet->GetSize( m_TimeStep );
-    if (numberOfPoints == 0)
-      return; //pointset is empty
-    else if (numberOfPoints<m_N || m_N <= -1)//if less than specified or specified as unlimited
+    //resize the CurrentStateVector
+    this->ExpandStartStateVector(pointSet->GetPointSetSeriesSize());
+
+    for (unsigned int timestep = 0; timestep < pointSet->GetPointSetSeriesSize(); timestep++)
     {
-      //get the currentState to state "SpaceLeft"
-      const mitk::Event* nullEvent = new mitk::Event(NULL, Type_User, BS_NoButton, BS_NoButton, Key_none);
-      mitk::StateEvent* newStateEvent = 
-        new mitk::StateEvent(EIDSMALLERN, nullEvent);
-      this->HandleEvent( newStateEvent );
-      delete newStateEvent;
-      delete nullEvent;
-    }
-    else if (numberOfPoints>=m_N)
-    {
-      if (numberOfPoints>m_N)
+      //go to new timestep
+      this->UpdateTimeStep(timestep);
+
+      int numberOfPoints = pointSet->GetSize( timestep );
+      if (numberOfPoints == 0)
+        continue; //pointset is empty
+      else 
       {
-        STATEMACHINE_WARN<<"Point Set contains more points than needed!\n";//display a warning that there are too many points
+        //we have a set of loaded points. Deselect all points, because they are all set to selected when added!
+        this->UnselectAll(timestep);
+
+        if (numberOfPoints<m_N || m_N <= -1)//if less than specified or specified as unlimited
+        {
+          //get the currentState to state "SpaceLeft"
+          const mitk::Event* nullEvent = new mitk::Event(NULL, Type_User, BS_NoButton, BS_NoButton, Key_none);
+          mitk::StateEvent* newStateEvent = 
+            new mitk::StateEvent(EIDSMALLERN, nullEvent);
+          this->HandleEvent( newStateEvent );
+          delete newStateEvent;
+          delete nullEvent;
+        }
+        else if (numberOfPoints>=m_N)
+        {
+          if (numberOfPoints>m_N)
+          {
+            STATEMACHINE_WARN<<"Point Set contains more points than needed!\n";//display a warning that there are too many points
+          }
+          //get the currentState to state "Set full"
+          const mitk::Event* nullEvent = new mitk::Event(NULL, Type_User, BS_NoButton, BS_NoButton, Key_none);
+          mitk::StateEvent* newStateEvent = 
+            new mitk::StateEvent(EIDEQUALSN, nullEvent);
+          this->HandleEvent( newStateEvent );
+          delete newStateEvent;
+          delete nullEvent;
+        }
       }
-      //get the currentState to state "Set full"
-      const mitk::Event* nullEvent = new mitk::Event(NULL, Type_User, BS_NoButton, BS_NoButton, Key_none);
-      mitk::StateEvent* newStateEvent = 
-        new mitk::StateEvent(EIDEQUALSN, nullEvent);
-      this->HandleEvent( newStateEvent );
-      delete newStateEvent;
-      delete nullEvent;
     }
   }
   return;
Index: mitk/Modules/QmitkExt/QmitkPointListModel.cpp
===================================================================
--- mitk/Modules/QmitkExt/QmitkPointListModel.cpp	(revision 25765)
+++ mitk/Modules/QmitkExt/QmitkPointListModel.cpp	(working copy)
@@ -24,6 +24,7 @@
 #include <mitkEvent.h>
 #include <mitkStateEvent.h>
 #include <mitkInteractionConst.h>
+#include <mitkGlobalInteraction.h>
 
 
 QmitkPointListModel::QmitkPointListModel( mitk::DataNode* pointSetNode, int t, QObject* parent )
@@ -111,6 +112,34 @@
 
 void QmitkPointListModel::OnPointSetChanged( const itk::EventObject &  /*e*/ )
 {
+  mitk::PointSet::Pointer pointSet = this->CheckForPointSetInNode(m_PointSetNode);
+  if ( pointSet.IsNotNull() )
+  {
+    //if 4D Data, then update time
+    if ((int)(pointSet->GetTimeSteps()) > 1 && m_PointSetNode->GetInteractor())
+    { 
+      //check if we need to update the time
+      mitk::BaseRenderer::Pointer sender = mitk::GlobalInteraction::GetInstance()->GetFocusManager()->GetFocused();
+      if (sender.IsNull())
+      {
+        MITK_WARN("PointListModel")<<"No BaseRenderer set!\n";
+      }
+      else if (m_TimeStep != sender->GetTimeStep())
+      {
+        //setting this timestep
+        m_TimeStep = sender->GetTimeStep();
+
+        //send a UpdateTime event to interactor
+        mitk::Interactor::Pointer interactor = m_PointSetNode->GetInteractor();
+        const mitk::Event* noEvent = new mitk::Event(sender, mitk::Type_None, mitk::BS_NoButton, mitk::BS_NoButton, mitk::Key_none);
+        mitk::StateEvent* stateEvent = new mitk::StateEvent(mitk::EIDNULLEVENT, noEvent);
+        interactor->HandleEvent(stateEvent);
+        delete noEvent;
+        delete stateEvent;
+      }
+    }
+  }
+  
   QAbstractListModel::reset();
   emit SignalUpdateSelection();
 }
@@ -300,14 +329,17 @@
     }
     else
     {
-      MITK_WARN<<"Unexpected interactor found!\n";
+      MITK_WARN("PointListModel")<<"Unexpected interactor found!\n";
       return;
     }
   }
 
+  //send a DEL event to pointsetinteractor 
+  mitk::BaseRenderer::Pointer sender = mitk::GlobalInteraction::GetInstance()->GetFocusManager()->GetFocused();
+  if (sender.IsNull())
+    MITK_WARN("PointListModel")<<"No BaseRenderer set! TimeStep broken.\n";
 
-  //send a DEL event to pointsetinteractor
-  const mitk::Event* delEvent = new mitk::Event(NULL, mitk::Type_KeyPress, mitk::BS_NoButton, mitk::BS_NoButton, mitk::Key_Delete);
+  const mitk::Event* delEvent = new mitk::Event(sender, mitk::Type_KeyPress, mitk::BS_NoButton, mitk::BS_NoButton, mitk::Key_Delete);
   mitk::StateEvent* delStateEvent = new mitk::StateEvent(mitk::EIDDELETE, delEvent);
   interactor->HandleEvent(delStateEvent);
   delete delEvent;
