diff --git a/grc/CMakeLists.txt b/grc/CMakeLists.txt
index 2b94539..101a121 100644
--- a/grc/CMakeLists.txt
+++ b/grc/CMakeLists.txt
@@ -24,5 +24,6 @@
 add_subdirectory(flow_control)
 add_subdirectory(misc_utils)
 install(FILES
-    gsm_block_tree.xml DESTINATION share/gnuradio/grc/blocks
+    gsm_block_tree.xml
+    grgsm_uplink_downlink_filter.xml DESTINATION share/gnuradio/grc/blocks
 )
diff --git a/grc/grgsm_uplink_downlink_filter.xml b/grc/grgsm_uplink_downlink_filter.xml
new file mode 100644
index 0000000..d868752
--- /dev/null
+++ b/grc/grgsm_uplink_downlink_filter.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<block>
+  <name>uplink_downlink_filter</name>
+  <key>grgsm_uplink_downlink_filter</key>
+  <category>GSM</category>
+  <import>import grgsm</import>
+  <make>grgsm.uplink_downlink_filter($direction)</make>
+  <sink>
+    <name>in</name>
+    <type>message</type>
+    <optional>1</optional>
+  </sink>
+  <source>
+    <name>downlink</name>
+    <type>message</type>
+    <optional>1</optional>
+  </source>  
+  <source>
+    <name>uplink</name>
+    <type>message</type>
+    <optional>1</optional>
+  </source>  
+</block>
diff --git a/include/grgsm/CMakeLists.txt b/include/grgsm/CMakeLists.txt
index dc9b191..61f15bf 100644
--- a/include/grgsm/CMakeLists.txt
+++ b/include/grgsm/CMakeLists.txt
@@ -23,7 +23,8 @@
 install(FILES
     plotting.hpp
     api.h
-    gsmtap.h DESTINATION include/grgsm
+    gsmtap.h
+    uplink_downlink_filter.h DESTINATION include/grgsm
 )
 
 add_subdirectory(decoding)
diff --git a/include/grgsm/uplink_downlink_filter.h b/include/grgsm/uplink_downlink_filter.h
new file mode 100644
index 0000000..dec4af6
--- /dev/null
+++ b/include/grgsm/uplink_downlink_filter.h
@@ -0,0 +1,58 @@
+/* -*- c++ -*- */
+/* @file
+ * @author Piotr Krysik <ptrkrysik@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_GRGSM_UPLINK_DOWNLINK_FILTER_H
+#define INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_H
+
+#include <grgsm/api.h>
+#include <gnuradio/block.h>
+
+namespace gr {
+  namespace grgsm {
+
+    /*!
+     * \brief <+description of block+>
+     * \ingroup grgsm
+     *
+     */
+    class GRGSM_API uplink_downlink_filter : virtual public gr::block
+    {
+     public:
+      typedef boost::shared_ptr<uplink_downlink_filter> sptr;
+
+      /*!
+       * \brief Return a shared_ptr to a new instance of grgsm::uplink_downlink_filter.
+       *
+       * To avoid accidental use of raw pointers, grgsm::uplink_downlink_filter's
+       * constructor is in a private implementation
+       * class. grgsm::uplink_downlink_filter::make is the public interface for
+       * creating new instances.
+       */
+      static sptr make();
+    };
+
+  } // namespace grgsm
+} // namespace gr
+
+#endif /* INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_H */
+
diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index 73fef92..402ad75 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -66,6 +66,7 @@
     qa_utils/message_source_impl.cc
     qa_utils/message_sink_impl.cc
     decryption/decryption_impl.cc
+    uplink_downlink_filter_impl.cc
 )
 
 
diff --git a/lib/uplink_downlink_filter_impl.cc b/lib/uplink_downlink_filter_impl.cc
new file mode 100644
index 0000000..b326fff
--- /dev/null
+++ b/lib/uplink_downlink_filter_impl.cc
@@ -0,0 +1,77 @@
+/* -*- c++ -*- */
+/* @file
+ * @author Piotr Krysik <ptrkrysik@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 "uplink_downlink_filter_impl.h"
+#include <grgsm/gsmtap.h>
+#define BURST_SIZE 148
+namespace gr {
+  namespace grgsm {
+
+    uplink_downlink_filter::sptr
+    uplink_downlink_filter::make()
+    {
+      return gnuradio::get_initial_sptr
+        (new uplink_downlink_filter_impl());
+    }
+
+    /*
+     * The private constructor
+     */
+    uplink_downlink_filter_impl::uplink_downlink_filter_impl()
+      : gr::block("uplink_downlink_filter",
+              gr::io_signature::make(0,0,0),
+              gr::io_signature::make(0,0,0))
+    {
+        message_port_register_in(pmt::mp("in"));
+        message_port_register_out(pmt::mp("uplink"));
+        message_port_register_out(pmt::mp("downlink"));
+        
+        set_msg_handler(pmt::mp("in"), boost::bind(&uplink_downlink_filter_impl::process_msg, this, _1));
+    }
+
+    void uplink_downlink_filter_impl::process_msg(pmt::pmt_t msg)
+    {
+        gsmtap_hdr * header = (gsmtap_hdr *)(pmt::blob_data(pmt::cdr(msg)));
+        bool uplink_burst = (be16toh(header->arfcn) & 0x4000) ? true : false;
+        if(uplink_burst)
+        {
+            message_port_pub(pmt::mp("uplink"), msg);
+        } else {
+            message_port_pub(pmt::mp("downlink"), msg);
+        }
+          
+    }
+
+    /*
+     * Our virtual destructor.
+     */
+    uplink_downlink_filter_impl::~uplink_downlink_filter_impl()
+    {
+    }
+  } /* namespace grgsm */
+} /* namespace gr */
+
diff --git a/lib/uplink_downlink_filter_impl.h b/lib/uplink_downlink_filter_impl.h
new file mode 100644
index 0000000..c510e29
--- /dev/null
+++ b/lib/uplink_downlink_filter_impl.h
@@ -0,0 +1,43 @@
+/* -*- c++ -*- */
+/* @file
+ * @author Piotr Krysik <ptrkrysik@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_GRGSM_UPLINK_DOWNLINK_FILTER_IMPL_H
+#define INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_IMPL_H
+
+#include <grgsm/uplink_downlink_filter.h>
+
+namespace gr {
+  namespace grgsm {
+
+    class uplink_downlink_filter_impl : public uplink_downlink_filter
+    {
+     public:
+      uplink_downlink_filter_impl();
+      ~uplink_downlink_filter_impl();
+
+      void process_msg(pmt::pmt_t msg);
+    };
+  } // namespace grgsm
+} // namespace gr
+
+#endif /* INCLUDED_GRGSM_UPLINK_DOWNLINK_FILTER_IMPL_H */
+
diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt
index 89157ed..670391e 100644
--- a/python/CMakeLists.txt
+++ b/python/CMakeLists.txt
@@ -64,3 +64,4 @@
 #GR_ADD_TEST(qa_arfcn ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_arfcn.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_filter ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/qa_uplink_downlink_filter.py)
diff --git a/python/qa_uplink_downlink_filter.py b/python/qa_uplink_downlink_filter.py
new file mode 100755
index 0000000..cd310bf
--- /dev/null
+++ b/python/qa_uplink_downlink_filter.py
@@ -0,0 +1,43 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+# @file
+# @author Piotr Krysik <ptrkrysik@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
+from gnuradio import blocks
+import grgsm_swig as grgsm
+
+class qa_uplink_downlink_filter (gr_unittest.TestCase):
+
+    def setUp (self):
+        self.tb = gr.top_block ()
+
+    def tearDown (self):
+        self.tb = None
+
+    def test_001_t (self):
+        # set up fg
+        self.tb.run ()
+        # check data
+
+
+if __name__ == '__main__':
+    gr_unittest.run(qa_uplink_downlink_filter, "qa_uplink_downlink_filter.xml")
diff --git a/swig/grgsm_swig.i b/swig/grgsm_swig.i
index f823287..ff6ec5c 100644
--- a/swig/grgsm_swig.i
+++ b/swig/grgsm_swig.i
@@ -38,6 +38,7 @@
 #include "grgsm/misc_utils/message_file_source.h"
 #include "grgsm/misc_utils/msg_to_tag.h"
 #include "grgsm/misc_utils/controlled_fractional_resampler_cc.h"
+#include "grgsm/uplink_downlink_filter.h"
 %}
 
 %include "grgsm/receiver/receiver.h"
@@ -107,3 +108,5 @@
 GR_SWIG_BLOCK_MAGIC2(gsm, message_source);
 %include "grgsm/qa_utils/message_sink.h"
 GR_SWIG_BLOCK_MAGIC2(gsm, message_sink);
+%include "grgsm/uplink_downlink_filter.h"
+GR_SWIG_BLOCK_MAGIC2(grgsm, uplink_downlink_filter);
