diff --git a/include/trackerReal.h b/include/trackerReal.h
index 527dc0d741ea518971ff7d224223bf86a52410bf..e6808106c293443cbad92359762d2c9b6ff981ee 100644
--- a/include/trackerReal.h
+++ b/include/trackerReal.h
@@ -101,6 +101,7 @@ private:
     double mHeight; // height of the person
     int mFirstFrame; // 0.. frame where the person was tracked the first time
     int mLastFrame; // 0..
+    int mMarkerID = -1; //set to -1 as -1 does not naturally occur as a ArucoMarkerNumber-value
 
 public:
     TrackPersonReal();
@@ -131,6 +132,14 @@ public:
     {
         mLastFrame = f;
     }
+    inline int getMarkerID() const
+    {
+        return mMarkerID;
+    }
+    inline void setMarkerID(int markerID)
+    {
+        mMarkerID = markerID;
+    }
     bool trackPointExist(int frame) const;
     const TrackPointReal& trackPointAt(int frame) const; // & macht bei else probleme, sonst mit [] zugreifbar
     // gibt -1 zurueck, wenn frame oder naechster frame nicht existiert
@@ -140,7 +149,7 @@ public:
 //     double distanceXBetweenFrames(int fromFrame, int toFrame) const;
 //     double distanceYBetweenFrames(int fromFrame, int toFrame) const;
 //     double velocityToNextFrame(int frame) const;
-    void init(int firstFrame, double height);
+    void init(int firstFrame, double height, int markerID);
     void addEnd(const QPointF& pos, int frame);
     void addEnd(const Vec3F& pos, int frame);
     void addEnd(const QPointF& pos, int frame, const QPointF &dir);
diff --git a/src/trackerReal.cpp b/src/trackerReal.cpp
index 7abffdc6d91e31b39dc254273ea58f8a5240e00e..3d77a5a617a6b716038ac6e6ef58f7e731b34d03 100644
--- a/src/trackerReal.cpp
+++ b/src/trackerReal.cpp
@@ -78,12 +78,13 @@ double TrackPersonReal::distanceToNextFrame(int frame) const
     else
         return -1;
 }
-void TrackPersonReal::init(int firstFrame, double height)
+void TrackPersonReal::init(int firstFrame, double height, int markerID)
 {
     clear();
     mFirstFrame = firstFrame;
     mLastFrame = firstFrame-1;
     mHeight = height;
+    setMarkerID(markerID);
 }
 
 void TrackPersonReal::addEnd(const QPointF& pos, int frame)
@@ -209,6 +210,7 @@ int TrackerReal::calculate(Tracker *tracker, ImageItem *imageItem, ColorPlot *co
         int extrapolated;
         QPointF colPos;
         float angle;
+        int markerID;
 
         for (i = 0; i < tracker->size(); ++i) // ueber trajektorien
         {
@@ -232,7 +234,10 @@ int TrackerReal::calculate(Tracker *tracker, ImageItem *imageItem, ColorPlot *co
                     //tmpMissingListAnz.removeFirst(); // anzahl
                 }
             }
-            trackPersonReal.init(firstFrame+addFrames, height);
+
+            markerID = (*tracker)[i].getMarkerID(); // set markerID to TrackPerson.markerID
+
+            trackPersonReal.init(firstFrame+addFrames, height, markerID);
             tsize = tracker->at(i).size();
             for (j = 0; (j < tsize); ++j) // ueber trackpoints
             {
@@ -609,7 +614,7 @@ void TrackerReal::exportTxt(QTextStream &out, bool alternateHeight, bool useTrac
                 out << " " << at(i).at(j).angleOfView() << endl;
 
             if (exportMarkerID)
-                out << " " << at(i).at(j).getMarkerID() << endl;
+                out << " " << at(i).getMarkerID() << endl;
             else
                 out << endl;
         }