diff --git a/modules/seq/base/src/hmm.cc b/modules/seq/base/src/hmm.cc
index a89d3cf27b23613240d9ec5868cd8b6d9704ea5d..ef0ab66ca200ca733f39894e88252c028f7d69b6 100644
--- a/modules/seq/base/src/hmm.cc
+++ b/modules/seq/base/src/hmm.cc
@@ -60,6 +60,22 @@ Real HMMColumn::GetEntropy() const {
   return entropy;
 }
 
+Real HMMColumn::GetFreq(char ch) const{
+  int idx = this->GetIndex(ch);
+  if(idx == -1){
+    throw std::runtime_error("Invalid One Letter Code observed when getting frequency in HMMColumn!");
+  }
+  return freq_[idx];
+}
+
+void HMMColumn::SetFreq(char ch, Real freq){
+  int idx = this->GetIndex(ch);
+  if(idx == -1){
+    throw std::runtime_error("Invalid One Letter Code observed when setting frequency in HMMColumn!");
+  }
+  freq_[idx] = freq;
+}
+
 HMMPtr HMM::Load(const std::string& filename) {
   HMMPtr hmm(new HMM);
   boost::iostreams::filtering_stream<boost::iostreams::input> in;
diff --git a/modules/seq/base/src/hmm.hh b/modules/seq/base/src/hmm.hh
index 357fc71159243384d41b474a65a50517bdba0dfb..5fc755797df853378f4a5aa1bbf790e5c9d77d31 100644
--- a/modules/seq/base/src/hmm.hh
+++ b/modules/seq/base/src/hmm.hh
@@ -59,13 +59,9 @@ class HMMColumn {
 
   Real GetNEffDel() const { return n_eff_del_; }
 
-  Real GetFreq(char ch) const {
-    return freq_[this->GetIndex(ch)];
-  }
+  Real GetFreq(char ch) const;
 
-  void SetFreq(char ch, Real freq) {
-    freq_[this->GetIndex(ch)]=freq;
-  }
+  void SetFreq(char ch, Real freq);
 
   bool operator==(const HMMColumn& rhs) const {
     return !memcmp(freq_, rhs.freq_, sizeof(freq_)) &&