diff --git a/modules/seq/base/src/aligned_region.cc b/modules/seq/base/src/aligned_region.cc
index decb966ef0533f5c9d0a1383d4f8ccb2f1ce36e4..3db9d14300fd53c4495c6c2df6c041197e05978f 100644
--- a/modules/seq/base/src/aligned_region.cc
+++ b/modules/seq/base/src/aligned_region.cc
@@ -115,6 +115,9 @@ int AlignedRegion::GetMaster() const
 
 void AlignedRegion::SetMaster(int master)
 {
+  if(master < -1 || master >= aln_.GetCount()){
+    throw IntegrityError("Master out of bounds");
+  }
   master_=master;
 }
 
diff --git a/modules/seq/base/src/impl/sequence_impl.cc b/modules/seq/base/src/impl/sequence_impl.cc
index 1572cd50863aeb82a00660e3a0ba3d8a64a235f9..06edaf5d52067124afb76f6a3335c9844e1f3ed6 100644
--- a/modules/seq/base/src/impl/sequence_impl.cc
+++ b/modules/seq/base/src/impl/sequence_impl.cc
@@ -280,7 +280,7 @@ void SequenceImpl::Replace(const String& str,int start, int end)
 
 void SequenceImpl::ShiftRegion(int start, int end, int amount)
 {
-  if(start > end || start + amount <= 0 || end + amount > this->GetLength()){
+  if(start > end || start + amount < 0 || end + amount > this->GetLength()){
     throw std::out_of_range("ShiftRegion: invalid region");
   }
   String str1=seq_string_.substr(start, end-start);