diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index a4a4338..564ec3b 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -54,6 +54,7 @@
 GR_ADD_TEST(qa_burst_sdcch_subslot_filter ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_burst_sdcch_subslot_filter.py)
 GR_ADD_TEST(qa_burst_fnr_filter ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_burst_fnr_filter.py)
 GR_ADD_TEST(qa_dummy_burst_filter ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_dummy_burst_filter.py)
+GR_ADD_TEST(qa_tch_f_decoder ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_tch_f_decoder.py)
 #GR_ADD_TEST(qa_msg_to_tag ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_msg_to_tag.py)
 #GR_ADD_TEST(qa_controlled_fractional_resampler_cc ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_controlled_fractional_resampler_cc.py)
 #GR_ADD_TEST(qa_uplink_downlink_splitter ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_uplink_downlink_splitter.py)
diff --git a/python/qa_tch_f_decoder.py b/python/qa_tch_f_decoder.py
new file mode 100755
index 0000000..b6a8b65
--- /dev/null
+++ b/python/qa_tch_f_decoder.py
@@ -0,0 +1,108 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# @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.
+# 
+# 
+
+import numpy as np
+from gnuradio import gr, gr_unittest, blocks
+import grgsm_swig as grgsm
+import pmt
+
+class qa_tch_f_decoder (gr_unittest.TestCase):
+
+    def setUp (self):
+        self.tb = gr.top_block ()
+
+    def tearDown (self):
+        self.tb = None
+
+    def test_fr (self):
+        """
+            Simple TCH/F Full Rate test
+        """
+        framenumbers_input = [373420, 373421, 373422, 373423, 373424, 373425, 373426, 373427, 3734298]
+        timeslots_input = [3, 3, 3, 3, 3, 3, 3, 3]
+        bursts_input = [
+                "0000101011011010011110011011101011100000100010001011010100110111011110001001011101111000111010001001000110000011100010000010111110110101001101011000",
+                "0001011011111010000000111010110001110101010011011100000110100111011110001001011101111000110100000010000001100010101101011010000110000101101011000000",
+                "0000011010010000100000000100110111111110101101011001001010010111011110001001011101111000010001010001101000010100100111101110110010011110010000011000",
+                "0001000000010111010111100100110110000101101111000000011011100111011110001001011101111000101001000001101010010110011100011010010011010001010010001000",
+                "0000111001001110100011110000101001110110111011001110110110110111011110001001011101111000011110001000010101011000101010010101000000100000010011101000",
+                "0000011001001010010101100000110100101001111001001100101010000111011110001001011101111000100111000000111111000000100001101001101010000110111111100000",
+                "0001011011101100100001010001001000110010010010100101000111010111011110001001011101111000100001101110100101000100100100100100000100011101111001011000",
+                "0000010111000101101101100001011000110010010011001110101000010111011110001001011101111000001001100011010001111110001101010100110001010001100100001000"
+        ]
+
+        src = grgsm.burst_source(framenumbers_input, timeslots_input, bursts_input)
+        decoder = grgsm.tch_f_decoder(grgsm.TCH_FS, False)
+        dst = blocks.message_debug()
+
+        self.tb.msg_connect(src, "out", decoder, "bursts")
+        self.tb.msg_connect(decoder, "voice", dst, "store")
+
+        self.tb.run ()
+
+        self.assertEqual(dst.num_messages(), 1)
+
+        pdu = dst.get_message(0)
+        self.assertEqual(True, pmt.is_pair(pdu))
+
+        data = pmt.cdr(pdu)
+        self.assertEqual(True, pmt.is_blob(data))
+
+        np.testing.assert_array_equal(
+                np.array([
+                    211,  92, 197, 118, 171, 142, 160,  70, 219, 146,  71,  20, 226,
+                    128,  73,  35, 142,  75,  35,  94,  32,  73,  28, 114,  73,  44,
+                    132, 192,  72, 228, 141, 201,  27
+                    ]),
+                pmt.to_python(data))
+
+    def test_fr_parity_error (self):
+        """
+            Test parity error
+        """
+        framenumbers_input = [371462, 371463, 371464, 371465, 371466, 371467, 371468, 371469]
+        timeslots_input = [3, 3, 3, 3, 3, 3, 3, 3]
+        bursts_input = [
+                "0001000010000011000010100000100101100000101101011000100000010111011110001001011101111001011010000000111010000000101101100000001010000000000000110000",
+                "0001010101010101010010001011010101010101111101001000000001100111011110001001011101111001010101011101010000000010000001011101110001001010001001000000",
+                "0000100010110100100000001001001010000000101110100000001111000111011110001001011101111001000000001101000000001010010000000010100100101000000000011000",
+                "0000000010010101111111010011001000000000101101010111010100000111011110001001011101111001000010000001010101110001000000000010010001110111110000000000",
+                "0001000000100011101010100000000101000000001111111010100000011111011110001001011101111001010000100010111010100000000101000010000010101010100000010000",
+                "0001010101111111111010000001010101011111111111101000000001001111011110001001011101111001010111111111111010101000000001010101011011101010000001000000",
+                "0000000000111110101010100001000000100010101110101010000101001111011110001001011101111001001010001111101010001000010000000000101110101010100000010000",
+                "0000001000010101010101111011101010100000000101011101111110101111011110001001011101111001100010000001010101011011101010001000010001011101111010101000"
+        ]
+
+        src = grgsm.burst_source(framenumbers_input, timeslots_input, bursts_input)
+        decoder = grgsm.tch_f_decoder(grgsm.TCH_FS, False)
+        dst = blocks.message_debug()
+
+        self.tb.msg_connect(src, "out", decoder, "bursts")
+        self.tb.msg_connect(decoder, "voice", dst, "store")
+
+        self.tb.run ()
+
+        self.assertEqual(dst.num_messages(), 0)
+
+if __name__ == '__main__':
+    gr_unittest.run(qa_tch_f_decoder, "qa_tch_f_decoder.xml")
diff --git a/test_data b/test_data
index 86df03f..e2e5b44 160000
--- a/test_data
+++ b/test_data
@@ -1 +1 @@
-Subproject commit 86df03f54d86093e2fe22daae8bb8c170cf31e58
+Subproject commit e2e5b44bc2906d5f01944355ce5c83b39eec6fee
