diff --git a/include/gsm/tmsi_dumper.h b/include/gsm/tmsi_dumper.h
index 68de456..88e9941 100644
--- a/include/gsm/tmsi_dumper.h
+++ b/include/gsm/tmsi_dumper.h
@@ -24,7 +24,7 @@
 #ifndef INCLUDED_GSM_TMSI_DUMPER_H
 #define INCLUDED_GSM_TMSI_DUMPER_H
 
-#include <gsm/api.h>
+#include <grgsm/api.h>
 #include <gnuradio/block.h>
 
 namespace gr {
diff --git a/lib/tmsi_dumper_impl.cc b/lib/tmsi_dumper_impl.cc
index 7ac5388..5d825e2 100644
--- a/lib/tmsi_dumper_impl.cc
+++ b/lib/tmsi_dumper_impl.cc
@@ -42,8 +42,8 @@
      */
     tmsi_dumper_impl::tmsi_dumper_impl()
       : gr::block("tmsi_dumper",
-              gr::io_signature::make(<+MIN_IN+>, <+MAX_IN+>, sizeof(<+ITYPE+>)),
-              gr::io_signature::make(<+MIN_OUT+>, <+MAX_OUT+>, sizeof(<+OTYPE+>)))
+              gr::io_signature::make(0, 0, 0),
+              gr::io_signature::make(0, 0, 0))
     {}
 
     /*
@@ -53,30 +53,6 @@
     {
     }
 
-    void
-    tmsi_dumper_impl::forecast (int noutput_items, gr_vector_int &ninput_items_required)
-    {
-        /* <+forecast+> e.g. ninput_items_required[0] = noutput_items */
-    }
-
-    int
-    tmsi_dumper_impl::general_work (int noutput_items,
-                       gr_vector_int &ninput_items,
-                       gr_vector_const_void_star &input_items,
-                       gr_vector_void_star &output_items)
-    {
-        const <+ITYPE*> *in = (const <+ITYPE*> *) input_items[0];
-        <+OTYPE*> *out = (<+OTYPE*> *) output_items[0];
-
-        // Do <+signal processing+>
-        // Tell runtime system how many input items we consumed on
-        // each input stream.
-        consume_each (noutput_items);
-
-        // Tell runtime system how many output items we produced.
-        return noutput_items;
-    }
-
   } /* namespace gsm */
 } /* namespace gr */
 
diff --git a/lib/tmsi_dumper_impl.h b/lib/tmsi_dumper_impl.h
index 854c40e..b559772 100644
--- a/lib/tmsi_dumper_impl.h
+++ b/lib/tmsi_dumper_impl.h
@@ -36,16 +36,6 @@
      public:
       tmsi_dumper_impl();
       ~tmsi_dumper_impl();
-
-      // Where all the action really happens
-      void forecast (int noutput_items, gr_vector_int &ninput_items_required);
-
-      int general_work(int noutput_items,
-		       gr_vector_int &ninput_items,
-		       gr_vector_const_void_star &input_items,
-		       gr_vector_void_star &output_items);
-    };
-
   } // namespace gsm
 } // namespace gr
 
