diff --git a/modules/seq/base/src/impl/sequence_impl.cc b/modules/seq/base/src/impl/sequence_impl.cc
index c90e71c8982e53d11d5c8b176211c144060dd001..1572cd50863aeb82a00660e3a0ba3d8a64a235f9 100644
--- a/modules/seq/base/src/impl/sequence_impl.cc
+++ b/modules/seq/base/src/impl/sequence_impl.cc
@@ -170,7 +170,7 @@ int SequenceImpl::GetLength() const {
 
 char SequenceImpl::GetOneLetterCode(int position) const
 {
-  if (position<0 || position>static_cast<int>(seq_string_.length()))
+  if (position<0 || position>=static_cast<int>(seq_string_.length()))
     throw Error("Position is not covered in sequence");
   return seq_string_[position];
 }
diff --git a/modules/seq/base/tests/test_alignment.cc b/modules/seq/base/tests/test_alignment.cc
index 97ffe338c573c3c6dd75fb3cd33a4fe93330cae7..f8fef7fb6f1fd8c5f2d354c8922f081c6e030196 100644
--- a/modules/seq/base/tests/test_alignment.cc
+++ b/modules/seq/base/tests/test_alignment.cc
@@ -215,9 +215,9 @@ BOOST_AUTO_TEST_CASE(alignment_aligned_region)
 
   BOOST_CHECK_THROW(ar = a.MakeRegion(-1,2,0),std::out_of_range);
   BOOST_CHECK_THROW(ar = a.MakeRegion(0,7,0),std::out_of_range);
-  BOOST_CHECK_THROW(ar = a.MakeRegion(2,4,0),std::out_of_range);
-  BOOST_CHECK_THROW(ar = a.MakeRegion(3,2,0),std::out_of_range);
-  BOOST_CHECK_THROW(ar = a.MakeRegion(3,3,0),std::out_of_range);
+  BOOST_CHECK_NO_THROW(ar = a.MakeRegion(2,4,0));
+  BOOST_CHECK_NO_THROW(ar = a.MakeRegion(3,2,0));
+  BOOST_CHECK_NO_THROW(ar = a.MakeRegion(3,3,0));
 }
 
 BOOST_AUTO_TEST_SUITE_END()