diff --git a/src/frame_base.cpp b/src/frame_base.cpp
index ccd51dc7f71cf6e696ed68c5e77a50f314b5bf45..71e4867117fcaaee040718336af0ca1759835744 100644
--- a/src/frame_base.cpp
+++ b/src/frame_base.cpp
@@ -177,11 +177,7 @@ void FrameBase::setState(const Eigen::VectorXs& _state)
 
 Eigen::VectorXs FrameBase::getState() const
 {
-    SizeEigen size = 0;
-    for (StateBlockPtr sb : state_block_vec_)
-        if (sb)
-            size += sb->getSize();
-    Eigen::VectorXs state(size);
+    Eigen::VectorXs state;
 
     getState(state);
 
@@ -195,10 +191,9 @@ void FrameBase::getState(Eigen::VectorXs& _state) const
         if (sb)
             size += sb->getSize();
 
-    assert(_state.size() == size && "Wrong state vector size");
+    _state = Eigen::VectorXs(size);
 
     SizeEigen index = 0;
-
     for (StateBlockPtr sb : state_block_vec_)
         if (sb)
         {
diff --git a/src/landmark/landmark_base.cpp b/src/landmark/landmark_base.cpp
index d1fb63043ac989955ab8954c9cc9a19754184bec..8ee7568aba6b36a4e1d1be37406dd735d791b3ac 100644
--- a/src/landmark/landmark_base.cpp
+++ b/src/landmark/landmark_base.cpp
@@ -122,11 +122,7 @@ void LandmarkBase::removeStateBlocks()
 
 Eigen::VectorXs LandmarkBase::getState() const
 {
-    SizeEigen size = 0;
-    for (StateBlockPtr sb : state_block_vec_)
-        if (sb)
-            size += sb->getSize();
-    Eigen::VectorXs state(size);
+    Eigen::VectorXs state;
 
     getState(state);
 
@@ -140,10 +136,9 @@ void LandmarkBase::getState(Eigen::VectorXs& _state) const
         if (sb)
             size += sb->getSize();
 
-    assert(_state.size() == size && "Wrong state vector size");
+    _state = Eigen::VectorXs(size);
 
     SizeEigen index = 0;
-
     for (StateBlockPtr sb : state_block_vec_)
         if (sb)
         {
diff --git a/src/problem.cpp b/src/problem.cpp
index b9cd0a1e6bd63bfb40a3eb67bda35e1b5c6096b2..c95a725a57f654f75c5fe40bbd7f62d3015e2b25 100644
--- a/src/problem.cpp
+++ b/src/problem.cpp
@@ -249,8 +249,6 @@ Eigen::VectorXs Problem::getCurrentState()
 
 void Problem::getCurrentState(Eigen::VectorXs& state)
 {
-    assert(state.size() == getFrameStructureSize() && "Problem::getCurrentState: bad state size");
-
     if (processor_motion_ptr_ != nullptr)
         processor_motion_ptr_->getCurrentState(state);
     else if (trajectory_ptr_->getLastKeyFrame() != nullptr)
@@ -261,8 +259,6 @@ void Problem::getCurrentState(Eigen::VectorXs& state)
 
 void Problem::getCurrentStateAndStamp(Eigen::VectorXs& state, TimeStamp& ts)
 {
-    assert(state.size() == getFrameStructureSize() && "Problem::getCurrentState: bad state size");
-
     if (processor_motion_ptr_ != nullptr)
     {
         processor_motion_ptr_->getCurrentState(state);
@@ -279,8 +275,6 @@ void Problem::getCurrentStateAndStamp(Eigen::VectorXs& state, TimeStamp& ts)
 
 void Problem::getState(const TimeStamp& _ts, Eigen::VectorXs& state)
 {
-    assert(state.size() == getFrameStructureSize() && "Problem::getStateAtTimeStamp: bad state size");
-
     // try to get the state from processor_motion if any, otherwise...
     if (processor_motion_ptr_ == nullptr || !processor_motion_ptr_->getState(_ts, state))
     {