diff --git a/modules/seq/base/src/alignment_handle.cc b/modules/seq/base/src/alignment_handle.cc
index 47a4fd0dd371747b35761519f15c696751fa3a4a..89e1391c0924c59431be94cb56c39ff7b99aa09a 100644
--- a/modules/seq/base/src/alignment_handle.cc
+++ b/modules/seq/base/src/alignment_handle.cc
@@ -66,10 +66,14 @@ int AlignmentHandle::GetResidueIndex(int seq_index, int pos) const
 void AlignmentHandle::AddSequence(const ConstSequenceHandle& sequence)
 {
   this->CheckValidity();
-  if (!sequence.IsValid() || (impl_->GetCount()>0 &&
-      impl_->GetSequence(0)->GetLength()!=sequence.GetLength())) {
+  if (!sequence.IsValid()) {
     throw InvalidSequence();
   }
+  if (!(impl_->GetCount()>0 &&
+      impl_->GetSequence(0)->GetLength()!=sequence.GetLength())) {
+    throw std::runtime_error("sequence doesn't have the same length as the "
+                             "alignment");
+  }
   return impl_->AddSequence(sequence.Impl());
 }