Added option to message printer that allows printing the gsmtap header.
diff --git a/grc/misc_utils/gsm_message_printer.xml b/grc/misc_utils/gsm_message_printer.xml
index 8b44b22..7e390ed 100644
--- a/grc/misc_utils/gsm_message_printer.xml
+++ b/grc/misc_utils/gsm_message_printer.xml
@@ -4,7 +4,7 @@
   <key>gsm_message_printer</key>
   <import>import grgsm</import>
   <import>import pmt</import>
-  <make>grgsm.message_printer(pmt.intern($prepend_string))</make>
+  <make>grgsm.message_printer(pmt.intern($prepend_string), $print_gsmtap_header)</make>
 
   <param>
     <name>Prepend String</name>
@@ -13,6 +13,20 @@
     <type>string</type>
     <hide>part</hide>
   </param>
+  <param>
+    <name>Print GSMTap header</name>
+    <key>print_gsmtap_header</key>
+    <value>False</value>
+    <type>bool</type>
+    <option>
+      <name>False</name>
+      <key>False</key>
+    </option>
+    <option>
+      <name>True</name>
+      <key>True</key>
+    </option>
+  </param>
 
   <sink>
     <name>msgs</name>
diff --git a/include/grgsm/misc_utils/message_printer.h b/include/grgsm/misc_utils/message_printer.h
index 3914707..d40352f 100644
--- a/include/grgsm/misc_utils/message_printer.h
+++ b/include/grgsm/misc_utils/message_printer.h
@@ -48,7 +48,7 @@
        * class. gsm::message_printer::make is the public interface for
        * creating new instances.
        */
-      static sptr make(pmt::pmt_t prepend_string);
+      static sptr make(pmt::pmt_t prepend_string, bool print_gsmtap_header=false);
     };
 
   } // namespace gsm
diff --git a/lib/misc_utils/message_printer_impl.cc b/lib/misc_utils/message_printer_impl.cc
index d02e2fe..2599f65 100644
--- a/lib/misc_utils/message_printer_impl.cc
+++ b/lib/misc_utils/message_printer_impl.cc
@@ -41,7 +41,15 @@
         gsmtap_hdr * header = (gsmtap_hdr *)message_plus_header;
         
         std::cout << d_prepend_string;
-        for(int ii=sizeof(gsmtap_hdr); ii<message_plus_header_len; ii++)
+        
+        int start_index = sizeof(gsmtap_hdr);
+        
+        if (d_print_gsmtap_header)
+        {
+            start_index = 0;
+        }
+        
+        for(int ii=start_index; ii<message_plus_header_len; ii++)
         {
             printf(" %02x", message_plus_header[ii]);
         }
@@ -49,24 +57,24 @@
     }
 
     message_printer::sptr
-    message_printer::make(pmt::pmt_t prepend_string)
+    message_printer::make(pmt::pmt_t prepend_string, bool print_gsmtap_header)
     {
       return gnuradio::get_initial_sptr
-        (new message_printer_impl(prepend_string));
+        (new message_printer_impl(prepend_string, print_gsmtap_header));
     }
 
     /*
      * The private constructor
      */
-    message_printer_impl::message_printer_impl(pmt::pmt_t prepend_string)
+    message_printer_impl::message_printer_impl(pmt::pmt_t prepend_string, bool print_gsmtap_header)
       : gr::block("message_printer",
               gr::io_signature::make(0, 0, 0),
               gr::io_signature::make(0, 0, 0))
     {
         d_prepend_string = prepend_string;
+        d_print_gsmtap_header = print_gsmtap_header;
         message_port_register_in(pmt::mp("msgs"));
         set_msg_handler(pmt::mp("msgs"), boost::bind(&message_printer_impl::message_print, this, _1));
-
     }
 
     /*
diff --git a/lib/misc_utils/message_printer_impl.h b/lib/misc_utils/message_printer_impl.h
index e82485e..e44288b 100644
--- a/lib/misc_utils/message_printer_impl.h
+++ b/lib/misc_utils/message_printer_impl.h
@@ -33,8 +33,9 @@
      private:
       void message_print(pmt::pmt_t msg);
       pmt::pmt_t d_prepend_string;
+      bool d_print_gsmtap_header;
      public:
-      message_printer_impl(pmt::pmt_t prepend_string);
+      message_printer_impl(pmt::pmt_t prepend_string, bool print_gsmtap_header=false);
       ~message_printer_impl();
     };