diff --git a/methods/Method_D.cpp b/methods/Method_D.cpp
index 6fd827bd8c486d697ed4bde5cc9779b0f79fe364..0597fd0014fb9e0a7ead6869177ec715b6cf3cf8 100644
--- a/methods/Method_D.cpp
+++ b/methods/Method_D.cpp
@@ -138,7 +138,7 @@ bool Method_D::Process (const PedData& peddata,const fs::path& scriptsLocation,
           }
           vector<int> ids=_peds_t[frameNr];
           vector<int> IdInFrame = peddata.GetIdInFrame(frameNr, ids, zPos_measureArea);
-          vector<double> XInFrame = peddata.GetXInFrame(frameNr, ids, zPos_measureArea);
+          //    vector<int> RealIdInFrame = peddata.GetRealIdInFrame(frameNr, ids, zPos_measureArea);
           vector<double> YInFrame = peddata.GetYInFrame(frameNr, ids, zPos_measureArea);
           vector<double> VInFrame = peddata.GetVInFrame(frameNr, ids, zPos_measureArea);
           //vector int to_remove
diff --git a/methods/PedData.cpp b/methods/PedData.cpp
index 06095c4792d40691b52e60db2eb00b4c6b432d2a..4827ae59ee80b7726f5ab90a980d545fc84277ea 100644
--- a/methods/PedData.cpp
+++ b/methods/PedData.cpp
@@ -29,6 +29,8 @@
 #include "PedData.h"
 #include <cmath>
 #include <string>
+#include <set>
+
 using std::string;
 using std::map;
 using std::vector;
@@ -45,6 +47,7 @@ PedData::~PedData()
 bool PedData::ReadData(const fs::path& projectRootDir, const fs::path&outputLocation, const fs::path& path, const fs::path& filename, const FileFormat& trajformat, int deltaF, std::string vComponent, const bool IgnoreBackwardMovement)
 {
      _minID = INT_MAX;
+     _maxID = INT_MAX;
      _minFrame = INT_MAX;
      _deltaF = deltaF;
      _vComponent = vComponent;
@@ -218,10 +221,13 @@ bool PedData::InitializeVariables(const fs::path& filename)
           Log->Write("INFO:\t Finished reading the data");
 
      }
+
      fdata.close();
      Log->Write("INFO: Got %d lines", _IdsTXT.size());
      _minID = *min_element(_IdsTXT.begin(),_IdsTXT.end());
+     _maxID = *max_element(_IdsTXT.begin(),_IdsTXT.end());
      Log->Write("INFO: minID: %d", _minID);
+     Log->Write("INFO: maxID: %d", _maxID);
      _minFrame = *min_element(_FramesTXT.begin(),_FramesTXT.end());
      Log->Write("INFO: minFrame: %d", _minFrame);
      //Total number of frames
@@ -230,12 +236,16 @@ bool PedData::InitializeVariables(const fs::path& filename)
 
      //Total number of agents
      std::vector<int> unique_ids = _IdsTXT;
-     // no need to
+
+    // no need to
      //sort. Assume that ids are ascendant
-     sort(unique_ids.begin(), unique_ids.end());
-     std::vector<int>::iterator it;
-     it = unique(unique_ids.begin(), unique_ids.end());
-     unique_ids.resize(distance(unique_ids.begin(),it));
+
+    std::set<int> s;
+    for( auto a: _IdsTXT )
+    {
+        s.insert( a );
+    }
+    unique_ids.assign( s.begin(), s.end() );
      _numPeds = unique_ids.size();
      Log->Write("INFO: Total number of Agents: %d", _numPeds);
      CreateGlobalVariables(_numPeds, _numFrames);
diff --git a/methods/PedData.h b/methods/PedData.h
index d3a644f137dc7d06f4e7efbdbbd5406ad1bcdb3b..d71576de0ec03c6ac76150b2074709dd9f1f642f 100644
--- a/methods/PedData.h
+++ b/methods/PedData.h
@@ -95,6 +95,7 @@ private:
      fs::path _outputLocation="";
      int _minFrame=0;
      int _minID=1;
+     int _maxID=0;
      int _numFrames=0;  // total number of frames
      int _numPeds=0; // total number of pedestrians
      float _fps=16;