diff --git a/Application/src/commons/common/misc/math.h b/Application/src/commons/common/misc/math.h
index 49a75552b3acca4bff8bec12adea3b0d8bf0392b..e63d55e37b3082fd0e99117c79e34c9bef311cb4 100644
--- a/Application/src/commons/common/misc/math.h
+++ b/Application/src/commons/common/misc/math.h
@@ -295,7 +295,9 @@ namespace cmn {
     }
 
 template<typename T>
-inline constexpr T infinity() {
+inline constexpr auto infinity()
+    -> typename std::enable_if<std::is_floating_point<T>::value, T>::type
+{
     return std::numeric_limits<T>::infinity();
 }
 
diff --git a/Application/src/tracker/tracking/Individual.h b/Application/src/tracker/tracking/Individual.h
index ffc087c4ad9d3f12f068574d3d53a6c73713ed44..f2c7d10bd8a4c367876fff384c6eee770327a82b 100644
--- a/Application/src/tracker/tracking/Individual.h
+++ b/Application/src/tracker/tracking/Individual.h
@@ -114,7 +114,7 @@ namespace track {
     
     class Identity {
     public:
-        static constexpr auto InvalidID = std::numeric_limits<uint32_t>::infinity();
+        static constexpr auto InvalidID = std::numeric_limits<uint32_t>::max();
         
     protected:
         GETTER_SETTER(gui::Color, color)
diff --git a/Application/src/tracker/tracking/Tracker.cpp b/Application/src/tracker/tracking/Tracker.cpp
index bce3b150258d9fa631a22a2dfed11578a6061123..da35ba56445b867e5787b418431f631eb664144c 100644
--- a/Application/src/tracker/tracking/Tracker.cpp
+++ b/Application/src/tracker/tracking/Tracker.cpp
@@ -2249,7 +2249,7 @@ void Tracker::clear_properties() {
                     assert(fish->identity().ID() == m);
                     max_id = max(max_id, m);
                     
-                    _individuals[fish->identity().ID()] = fish;
+                    _individuals[m] = fish;
                     //active_individuals.push_back(fish);
                 }
             }