diff --git a/Fit/Param/AttLimits.cpp b/Fit/Param/AttLimits.cpp
index 9a982651d92f86b18d284bc9458678fe2cb9e2a4..ff32ae6e08c44dafdd9a1e879b3865d6c5a62d1e 100644
--- a/Fit/Param/AttLimits.cpp
+++ b/Fit/Param/AttLimits.cpp
@@ -70,22 +70,22 @@ bool AttLimits::isFixed() const
 
 bool AttLimits::isLimited() const
 {
-    return m_att_fixed.isFree() && m_limits.isLimited();
+    return !m_att_fixed.isFixed() && m_limits.isLimited();
 }
 
 bool AttLimits::isUpperLimited() const
 {
-    return m_att_fixed.isFree() && !m_limits.hasLowerLimit() && m_limits.hasUpperLimit();
+    return !m_att_fixed.isFixed() && !m_limits.hasLowerLimit() && m_limits.hasUpperLimit();
 }
 
 bool AttLimits::isLowerLimited() const
 {
-    return m_att_fixed.isFree() && m_limits.hasLowerLimit() && !m_limits.hasUpperLimit();
+    return !m_att_fixed.isFixed() && m_limits.hasLowerLimit() && !m_limits.hasUpperLimit();
 }
 
 bool AttLimits::isLimitless() const
 {
-    return m_att_fixed.isFree() && !m_limits.hasLowerLimit() && !m_limits.hasUpperLimit();
+    return !m_att_fixed.isFixed() && !m_limits.hasLowerLimit() && !m_limits.hasUpperLimit();
 }
 
 double AttLimits::min() const
diff --git a/Fit/Param/Attributes.h b/Fit/Param/Attributes.h
index a2032f4de48164459ecc6b1db15239d56e444602..a420ff8b31b48e8a9a7a095ad1ddc57a4c3950c9 100644
--- a/Fit/Param/Attributes.h
+++ b/Fit/Param/Attributes.h
@@ -30,7 +30,6 @@ public:
 
     void setFixed(bool is_fixed) { m_is_fixed = is_fixed; }
     bool isFixed() const { return m_is_fixed; }
-    bool isFree() const { return !isFixed(); }
 
     friend std::ostream& operator<<(std::ostream& ostr, const Attributes& m)
     {