diff --git a/include/grgsm/decoding/CMakeLists.txt b/include/grgsm/decoding/CMakeLists.txt
index 64bbb16..1014955 100644
--- a/include/grgsm/decoding/CMakeLists.txt
+++ b/include/grgsm/decoding/CMakeLists.txt
@@ -22,5 +22,7 @@
 ########################################################################
 install(FILES
     control_channels_decoder.h 
-    tch_f_decoder.h DESTINATION include/grgsm/decoding
+    tch_f_decoder.h
+    tch_h_decoder.h
+	DESTINATION include/grgsm/decoding
 )
diff --git a/include/grgsm/decoding/tch_f_decoder.h b/include/grgsm/decoding/tch_f_decoder.h
index df5f0ff..ae65f06 100644
--- a/include/grgsm/decoding/tch_f_decoder.h
+++ b/include/grgsm/decoding/tch_f_decoder.h
@@ -41,7 +41,8 @@
         TCH_AFS5_15,
         TCH_AFS4_75,
         TCH_FS,
-        TCH_EFR
+        TCH_EFR,
+        TCH_HS,
     };
 
     /*!
diff --git a/include/grgsm/decoding/tch_h_decoder.h b/include/grgsm/decoding/tch_h_decoder.h
new file mode 100644
index 0000000..5ea9714
--- /dev/null
+++ b/include/grgsm/decoding/tch_h_decoder.h
@@ -0,0 +1,59 @@
+/* -*- c++ -*- */
+/*
+ * @file
+ * @author (C) 2018 by Vasil Velichkov <vvvelichkov@gmail.com>
+ * @section LICENSE
+ *
+ * Gr-gsm is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3, or (at your option)
+ * any later version.
+ *
+ * Gr-gsm is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gr-gsm; see the file COPYING.  If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street,
+ * Boston, MA 02110-1301, USA.
+ */
+
+
+#ifndef INCLUDED_GSM_TCH_H_DECODER_H
+#define INCLUDED_GSM_TCH_H_DECODER_H
+
+#include <grgsm/api.h>
+#include <gnuradio/block.h>
+
+namespace gr {
+  namespace gsm {
+
+    /*!
+     * \brief <+description of block+>
+     * \ingroup gsm
+     *
+     */
+    class GRGSM_API tch_h_decoder : virtual public gr::block
+    {
+     public:
+      typedef boost::shared_ptr<tch_h_decoder> sptr;
+
+      /*!
+       * \brief Return a shared_ptr to a new instance of gsm::tch_h_decoder.
+       *
+       * To avoid accidental use of raw pointers, gsm::tch_h_decoder's
+       * constructor is in a private implementation
+       * class. gsm::tch_h_decoder::make is the public interface for
+       * creating new instances.
+       */
+      static sptr make(unsigned int sub_channel, std::string multi_rate, bool boundary_check=false);
+
+    };
+
+  } // namespace gsm
+} // namespace gr
+
+#endif /* INCLUDED_GSM_TCH_H_DECODER_H */
+
