diff --git a/modules/seq/base/src/sequence_list.cc b/modules/seq/base/src/sequence_list.cc
index 52474a3d71b40ccb2498bcc245f4564755fda048..1242720cd4320b9d7f98d93acdde19ddf2223c56 100644
--- a/modules/seq/base/src/sequence_list.cc
+++ b/modules/seq/base/src/sequence_list.cc
@@ -207,8 +207,7 @@ SequenceList SequenceList::Take(int n) const
 {
   this->CheckValidity();
   if (n<0) {
-    return SequenceList(impl_->Slice(impl_->GetCount()+n-1, 
-                                      impl_->GetCount()));
+    return SequenceList(impl_->Slice(impl_->GetCount()+n, -n));
   } else {
     return SequenceList(impl_->Slice(0, n));
   }
@@ -224,8 +223,7 @@ ConstSequenceList ConstSequenceList::Take(int n) const
 {
   this->CheckValidity();
   if (n<0) {
-    return ConstSequenceList(impl_->Slice(impl_->GetCount()+n-1, 
-                                           impl_->GetCount()));
+    return ConstSequenceList(impl_->Slice(impl_->GetCount()+n, -n));
   } else {
     return ConstSequenceList(impl_->Slice(0, n));
   }