diff --git a/grc/flow_control/CMakeLists.txt b/grc/flow_control/CMakeLists.txt
index 107fac7..1b9c0d9 100644
--- a/grc/flow_control/CMakeLists.txt
+++ b/grc/flow_control/CMakeLists.txt
@@ -19,7 +19,8 @@
 
 install(FILES
     gsm_burst_timeslot_splitter.xml
-    gsm_burst_fnr_filter.xml 
+    gsm_burst_fnr_filter.xml
+    gsm_burst_timeslot_filter.xml
     gsm_dummy_burst_filter.xml
     gsm_burst_sdcch_subslot_splitter.xml DESTINATION share/gnuradio/grc/blocks
 )
diff --git a/grc/flow_control/gsm_burst_timeslot_filter.xml b/grc/flow_control/gsm_burst_timeslot_filter.xml
new file mode 100644
index 0000000..8af2b7b
--- /dev/null
+++ b/grc/flow_control/gsm_burst_timeslot_filter.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<block>
+  <name>Burst timeslot filter</name>
+  <key>gsm_burst_timeslot_filter</key>
+  <import>import grgsm</import>
+  <make>grgsm.burst_timeslot_filter($timeslot)</make>
+
+  <param>
+    <name>Timeslot</name>
+    <key>timeslot</key>
+    <value>0</value>
+    <type>int</type>
+    <hide>none</hide>
+  </param>
+
+  <sink>
+    <name>in</name>
+    <type>message</type>
+  </sink>
+
+  <source>
+    <name>out</name>
+    <type>message</type>
+    <optional>1</optional>
+  </source>
+
+  <doc>
+This block forwards only bursts in the timeslot given by the parameter
+  </doc>
+</block>
diff --git a/grc/gsm_block_tree.xml b/grc/gsm_block_tree.xml
index 26f607f..c275c2d 100644
--- a/grc/gsm_block_tree.xml
+++ b/grc/gsm_block_tree.xml
@@ -41,6 +41,7 @@
       <name>Flow control</name>
       <block>gsm_burst_timeslot_splitter</block>
       <block>gsm_burst_sdcch_subslot_splitter</block>
+      <block>gsm_burst_timeslot_filter</block>
       <block>gsm_burst_fnr_filter</block>
       <block>gsm_dummy_burst_filter</block>
     </cat>
diff --git a/include/grgsm/flow_control/CMakeLists.txt b/include/grgsm/flow_control/CMakeLists.txt
index 0a1a95a..3d7eb1c 100644
--- a/include/grgsm/flow_control/CMakeLists.txt
+++ b/include/grgsm/flow_control/CMakeLists.txt
@@ -23,6 +23,7 @@
 install(FILES
     burst_timeslot_splitter.h
     burst_sdcch_subslot_splitter.h
+    burst_timeslot_filter.h
     burst_fnr_filter.h
     dummy_burst_filter.h DESTINATION include/grgsm/flow_control
 )
diff --git a/include/grgsm/flow_control/burst_timeslot_filter.h b/include/grgsm/flow_control/burst_timeslot_filter.h
new file mode 100644
index 0000000..00ee2c3
--- /dev/null
+++ b/include/grgsm/flow_control/burst_timeslot_filter.h
@@ -0,0 +1,55 @@
+/* -*- c++ -*- */
+/* @file
+ * @author Roman Khassraf <rkhassraf@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_BURST_TIMESLOT_FILTER_H
+#define INCLUDED_GSM_BURST_TIMESLOT_FILTER_H
+
+#include <grgsm/api.h>
+#include <gnuradio/block.h>
+
+namespace gr {
+  namespace gsm {
+
+    /*!
+     * \brief <+description of block+>
+     * \ingroup gsm
+     *
+     */
+    class GSM_API burst_timeslot_filter : virtual public gr::block
+    {
+     public:
+      typedef boost::shared_ptr<burst_timeslot_filter> sptr;
+
+      /*!
+       * \brief Return a shared_ptr to a new instance of grgsm::burst_timeslot_filter.
+       *
+       * To avoid accidental use of raw pointers, grgsm::burst_timeslot_filter's
+       * constructor is in a private implementation
+       * class. grgsm::burst_timeslot_filter::make is the public interface for
+       * creating new instances.
+       */
+      static sptr make(unsigned int timeslot);
+    };
+  } // namespace gsm
+} // namespace gr
+
+#endif /* INCLUDED_GSM_BURST_TIMESLOT_FILTER_H */
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 2278809..0d61b7d 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -48,6 +48,7 @@
     decoding/ViterbiR204.cpp
     flow_control/burst_timeslot_splitter_impl.cc
     flow_control/burst_sdcch_subslot_splitter_impl.cc
+    flow_control/burst_timeslot_filter_impl.cc
     flow_control/burst_fnr_filter_impl.cc
     flow_control/dummy_burst_filter_impl.cc
     misc_utils/controlled_rotator_cc_impl.cc
diff --git a/lib/flow_control/burst_timeslot_filter_impl.cc b/lib/flow_control/burst_timeslot_filter_impl.cc
new file mode 100644
index 0000000..ccf4d4c
--- /dev/null
+++ b/lib/flow_control/burst_timeslot_filter_impl.cc
@@ -0,0 +1,77 @@
+/* -*- c++ -*- */
+/* @file
+ * @author Roman Khassraf <rkhassraf@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.
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gnuradio/io_signature.h>
+#include "burst_timeslot_filter_impl.h"
+#include <stdio.h>
+#include <grgsm/endian.h>
+#include <grgsm/gsmtap.h>
+
+
+namespace gr {
+  namespace gsm {
+
+    burst_timeslot_filter::sptr
+    burst_timeslot_filter::make(unsigned int timeslot)
+    {
+      return gnuradio::get_initial_sptr
+        (new burst_timeslot_filter_impl(timeslot));
+    }
+
+    /*
+     * The private constructor
+     */
+    burst_timeslot_filter_impl::burst_timeslot_filter_impl(unsigned int timeslot)
+      : gr::block("burst_timeslot_filter",
+              gr::io_signature::make(0, 0, 0),
+              gr::io_signature::make(0, 0, 0)),
+       d_timeslot(timeslot)
+    {
+        message_port_register_in(pmt::mp("in"));        
+        message_port_register_out(pmt::mp("out"));
+        
+        set_msg_handler(pmt::mp("in"), boost::bind(&burst_timeslot_filter_impl::process_burst, this, _1));
+    }
+
+    /*
+     * Our virtual destructor.
+     */
+    burst_timeslot_filter_impl::~burst_timeslot_filter_impl() {}
+
+    void burst_timeslot_filter_impl::process_burst(pmt::pmt_t msg)
+    {
+        pmt::pmt_t header_plus_burst = pmt::cdr(msg);
+        gsmtap_hdr * header = (gsmtap_hdr *)pmt::blob_data(header_plus_burst);
+        
+        unsigned int timeslot = header->timeslot;
+        
+        if (header->timeslot == d_timeslot)
+        {
+            message_port_pub(pmt::mp("out"), msg);
+        }
+    }
+  } /* namespace gsm */
+} /* namespace gr */
diff --git a/lib/flow_control/burst_timeslot_filter_impl.h b/lib/flow_control/burst_timeslot_filter_impl.h
new file mode 100644
index 0000000..f7b0b2d
--- /dev/null
+++ b/lib/flow_control/burst_timeslot_filter_impl.h
@@ -0,0 +1,45 @@
+/* -*- c++ -*- */
+/* @file
+ * @author Roman Khassraf <rkhassraf@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_BURST_TIMESLOT_FILTER_IMPL_H
+#define INCLUDED_GSM_BURST_TIMESLOT_FILTER_IMPL_H
+
+#include <grgsm/flow_control/burst_timeslot_filter.h>
+
+namespace gr {
+  namespace gsm {
+
+    class burst_timeslot_filter_impl : public burst_timeslot_filter
+    {
+     private:
+      unsigned int d_timeslot;
+     public:
+      burst_timeslot_filter_impl(unsigned int timeslot);
+      ~burst_timeslot_filter_impl();
+      void process_burst(pmt::pmt_t msg);
+    };
+
+  } // namespace gsm
+} // namespace gr
+
+#endif /* INCLUDED_GSM_BURST_TIMESLOT_FILTER_IMPL_H */
+
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 811a3ec..a8d9bd6 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -51,5 +51,6 @@
 GR_ADD_TEST(qa_message_printer ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_message_printer.py)
 GR_ADD_TEST(qa_burst_timeslot_splitter ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_burst_timeslot_splitter.py)
 GR_ADD_TEST(qa_burst_sdcch_subslot_splitter ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_burst_sdcch_subslot_splitter.py)
+GR_ADD_TEST(qa_burst_timeslot_filter ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_burst_timeslot_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)
diff --git a/python/qa_burst_timeslot_filter.py b/python/qa_burst_timeslot_filter.py
new file mode 100755
index 0000000..6c8fb2a
--- /dev/null
+++ b/python/qa_burst_timeslot_filter.py
@@ -0,0 +1,92 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# @file
+# @author Roman Khassraf <rkhassraf@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.
+# 
+# 
+
+from gnuradio import gr, gr_unittest, blocks
+import grgsm
+import pmt
+
+class qa_burst_timeslot_filter (gr_unittest.TestCase):
+
+    def setUp (self):
+        self.tb = gr.top_block ()
+
+    def tearDown (self):
+        self.tb = None
+
+    def test_001 (self):
+        """
+            24 random framenumbers, timeslots and bursts as input
+        """
+        framenumbers_input = [1259192, 1076346, 1076242, 235879, 1259218, 2194302, 2714322, 1588, 1259244, 1563637, 1435624, 1928543, 503726, 1571144, 2658397, 1807445, 869789, 624070, 2005511, 1306953, 2284894, 1600339, 551375, 1259270]
+        timeslots_input = [6, 1, 4, 3, 5, 3, 2, 7, 1, 6, 0, 7, 2, 1, 2, 0, 7, 1, 0, 6, 0, 6, 5, 7]
+        bursts_input = [
+            "0001100001000111100111101111100101000100101011000010011110011101001111101100010100111111100000110100011111101011101100100111110011000100010001010000",
+            "0001000101000000001001111110000110010110110111110111101000001101001111101100010100111111001110001001110101110001010001000111011010010001011011000000",
+            "0001001101101101000111001000101011001101001110110001001100111101001111101100010100111111111001001010011010011111010010010101011001001011011100110000",
+            "0000010010100000001001101010100001011100010001101100111111101101001111101100010100111111101101001110100010101110010110101111100010010000110010110000",
+            "0000010101010110010011110101010101101100000000001000100100101010000111011101001000011101011101110000101011001111000100001000000000001110010001111000",
+            "0001000000000010111010100000010101000010001010111010000000011010000111011101001000011101000000100010111110101000000001000000000010111010100000000000",
+            "0001010101111111111010000001010101011111111111101000000001001010000111011101001000011101010111111111111010101000000001010101011011101010000001000000",
+            "0000000000111110101010100001000000100010101110101010000101001010000111011101001000011101001010001111101010001000010000000000101110101010100000010000",
+            "0000010000000010000001001000011001010010000011000101000000001010000111011101001000011101010100100000000001001000001000000100100011000101001000111000",
+            "0001010100110111100000110111100110010100011100011000110110001010000111011101001000011101011111111001111001101010010100000000011111001101000111110000",
+            "0001100110000001011110001000001100101001010100111111000100111010000111011101001000011101000011010010001010111101000100110011111010100010010101000000",
+            "0000010101100101010110000011010000000000000010111001110110101010000111011101001000011101000001000100100001111001100011000101010001110001010100111000",
+            "0001000100000011001010111001111100011010000000000000001001001010000111011101001000011101010110000101111010011001110110001001011010101000011110110000",
+            "0001100001000111111111100001011000000011010110111010110000111010000111011101001000011101100010111100100101110001101000110100110000001010101110011000",
+            "0000000100111011000000000010100100001100101010000000010010101010000111011101001000011101000110110001110110000100110100110110011001100100000101100000",
+            "0000100101111010011110111010100111010100011011011101100111001010000111011101001000011101010000111010000110100000001000010011101011001001110100011000",
+            "0001111101101110110000010100100111000001001000100000001111100011100010111000101110001010111010010100011001100111001111010011111000100101111101010000",
+            "0000110101000011011010110000110011010000000001001010110010001010000111011101001000011101010000011000111001101110000000110010100001101110101000100000",
+            "0000001000010001011111111111101010100000010101011101101010101010000111011101001000011101100010010101010101011110101010101000010001011101111010101000",
+            "0000101110101111011001011001000011110010100010011100110010001010000111011101001000011101100000001110000100010100110111001001100010101101100010101000",
+            "0001100010000001000111011100101101101010100001111101001000101010000111011101001000011101111010000011010110010111011111010010001000001101100011111000",
+            "0001011101101101011100001111001100010001000011011001101110011010000111011101001000011101010010111011100111000001011100100001111010100101111000100000",
+            "0000001000100011000000000000110100000000010000001010100100001010000111011101001000011101000010010000000000001001000001011000000001010000000100010000",
+            "0000100000110001000000000100000110001011100001001000000000001010000111011101001000011101001010010001010000000111010000000011000001000000000101010000"
+        ]
+
+        bursts_expected = [
+            "0001000101000000001001111110000110010110110111110111101000001101001111101100010100111111001110001001110101110001010001000111011010010001011011000000",
+            "0000010000000010000001001000011001010010000011000101000000001010000111011101001000011101010100100000000001001000001000000100100011000101001000111000",
+            "0001100001000111111111100001011000000011010110111010110000111010000111011101001000011101100010111100100101110001101000110100110000001010101110011000",
+            "0000110101000011011010110000110011010000000001001010110010001010000111011101001000011101010000011000111001101110000000110010100001101110101000100000"
+        ]
+
+        timeslot = 1
+        src = grgsm.burst_source(framenumbers_input, timeslots_input, bursts_input)
+        ts_filter = grgsm.burst_timeslot_filter(timeslot)
+        sink = grgsm.burst_sink()
+
+        self.tb.msg_connect(src, "out", ts_filter, "in")
+        self.tb.msg_connect(ts_filter, "out", sink, "in")
+
+        self.tb.run ()
+
+        bursts_result = list(sink.get_burst_data())
+        
+        self.assertEqual(bursts_expected, bursts_result)
+
+
+if __name__ == '__main__':
+    gr_unittest.run(qa_burst_timeslot_filter, "qa_burst_timeslot_filter.xml")
diff --git a/swig/grgsm_swig.i b/swig/grgsm_swig.i
index b6ae71c..599c33e 100644
--- a/swig/grgsm_swig.i
+++ b/swig/grgsm_swig.i
@@ -18,6 +18,7 @@
 #include "grgsm/demapping/tch_f_chans_demapper.h"
 #include "grgsm/flow_control/burst_timeslot_splitter.h"
 #include "grgsm/flow_control/burst_sdcch_subslot_splitter.h"
+#include "grgsm/flow_control/burst_timeslot_filter.h"
 #include "grgsm/flow_control/burst_fnr_filter.h"
 #include "grgsm/flow_control/dummy_burst_filter.h"
 #include "grgsm/misc_utils/bursts_printer.h"
@@ -61,6 +62,8 @@
 GR_SWIG_BLOCK_MAGIC2(gsm, burst_timeslot_splitter);
 %include "grgsm/flow_control/burst_sdcch_subslot_splitter.h"
 GR_SWIG_BLOCK_MAGIC2(gsm, burst_sdcch_subslot_splitter);
+%include "grgsm/flow_control/burst_timeslot_filter.h"
+GR_SWIG_BLOCK_MAGIC2(gsm, burst_timeslot_filter);
 %include "grgsm/flow_control/burst_fnr_filter.h"
 GR_SWIG_BLOCK_MAGIC2(gsm, burst_fnr_filter);
 %include "grgsm/flow_control/dummy_burst_filter.h"
