diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt
index b8f3c58..da02515 100644
--- a/lib/CMakeLists.txt
+++ b/lib/CMakeLists.txt
@@ -26,8 +26,8 @@
 link_directories(${Boost_LIBRARY_DIRS})
 list(APPEND grgsm_sources
     receiver/receiver_impl.cc
-    receiver/receiver_config.cc 
-    receiver/viterbi_detector.cc 
+    receiver/receiver_config.cc
+    receiver/viterbi_detector.cc
     receiver/sch.c
     receiver/clock_offset_control_impl.cc
     misc_utils/bursts_printer_impl.cc
@@ -42,7 +42,6 @@
     decoding/BitVector.cpp
     decoding/GSM610Tables.cpp
     decoding/GSM660Tables.cpp
-    decoding/GSM690Tables.cpp
     decoding/GSM503Tables.cpp
     decoding/ViterbiR204.cpp
     misc_utils/controlled_rotator_cc_impl.cc
diff --git a/lib/decoding/GSM690Tables.cpp b/lib/decoding/GSM690Tables.cpp
deleted file mode 100644
index 7c40a9a..0000000
--- a/lib/decoding/GSM690Tables.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-/* AMR (GSM 06.90) importance bit ordering */
-
-/*
- * Copyright 2010  Sylvain Munaut <tnt@246tNt.com>
- * All Rights Reserved
- *
- * This program 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 of the License, or
- * (at your option) any later version.
- *
- * This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include "GSM690Tables.h"
-
-unsigned int GSM::g690_12_2_BitOrder[244] = {
-	  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,
-	 10,  11,  12,  13,  14,  23,  15,  16,  17,  18,
-	 19,  20,  21,  22,  24,  25,  26,  27,  28,  38,
-	141,  39, 142,  40, 143,  41, 144,  42, 145,  43,
-	146,  44, 147,  45, 148,  46, 149,  47,  97, 150,
-	200,  48,  98, 151, 201,  49,  99, 152, 202,  86,
-	136, 189, 239,  87, 137, 190, 240,  88, 138, 191,
-	241,  91, 194,  92, 195,  93, 196,  94, 197,  95,
-	198,  29,  30,  31,  32,  33,  34,  35,  50, 100,
-	153, 203,  89, 139, 192, 242,  51, 101, 154, 204,
-	 55, 105, 158, 208,  90, 140, 193, 243,  59, 109,
-	162, 212,  63, 113, 166, 216,  67, 117, 170, 220,
-	 36,  37,  54,  53,  52,  58,  57,  56,  62,  61,
-	 60,  66,  65,  64,  70,  69,  68, 104, 103, 102,
-	108, 107, 106, 112, 111, 110, 116, 115, 114, 120,
-	119, 118, 157, 156, 155, 161, 160, 159, 165, 164,
-	163, 169, 168, 167, 173, 172, 171, 207, 206, 205,
-	211, 210, 209, 215, 214, 213, 219, 218, 217, 223,
-	222, 221,  73,  72,  71,  76,  75,  74,  79,  78,
-	 77,  82,  81,  80,  85,  84,  83, 123, 122, 121,
-	126, 125, 124, 129, 128, 127, 132, 131, 130, 135,
-	134, 133, 176, 175, 174, 179, 178, 177, 182, 181,
-	180, 185, 184, 183, 188, 187, 186, 226, 225, 224,
-	229, 228, 227, 232, 231, 230, 235, 234, 233, 238,
-	237, 236,  96, 199,
-};
diff --git a/lib/decoding/GSM690Tables.h b/lib/decoding/GSM690Tables.h
deleted file mode 100644
index 6b9bb36..0000000
--- a/lib/decoding/GSM690Tables.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/* AMR (GSM 06.90) importance bit ordering */
-
-/*
- * Copyright 2010  Sylvain Munaut <tnt@246tNt.com>
- * All Rights Reserved
- *
- * This program 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 of the License, or
- * (at your option) any later version.
- *
- * This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef GSM690TABLES_H
-#define GSM690TABLES_H
-
-namespace GSM {
-
-/** Table #7 from GSM 05.03 */
-extern unsigned int g690_12_2_BitOrder[244];
-
-}
-
-#endif /* GSM690TABLES_H */
diff --git a/lib/decoding/VocoderFrame.h b/lib/decoding/VocoderFrame.h
deleted file mode 100644
index 1651a29..0000000
--- a/lib/decoding/VocoderFrame.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef _VOCODERFRAME_H
-#define _VOCODERFRAME_H
-
-#include "BitVector.h"
-//#include "GSMCommon.h"
-
-class VocoderFrame : public BitVector {
-
-        public:
-
-        VocoderFrame()
-                :BitVector(264)
-        { fillField(0,0x0d,4); }
-
-        /** Construct by unpacking a char[33]. */
-        VocoderFrame(const unsigned char *src)
-                :BitVector(264)
-        { unpack(src); }
-
-        BitVector payload() { return tail(4); }
-//        const BitVector payload() const { return tail(4); }
-
-};
-
-class VocoderAMRFrame : public BitVector {
-
-        public:
-
-        VocoderAMRFrame()
-                :BitVector(244+8)
-        { fillField(0,0x3c,8); /* AMR-NB 12.2 */ }
-
-        /** Construct by unpacking a char[32]. */
-        VocoderAMRFrame(const unsigned char *src)
-                :BitVector(244+8)
-        { unpack(src); }
-
-        BitVector payload() { return tail(8); }
-//        const BitVector payload() const { return tail(8); }
-
-};
-
-class VocoderAMR_5_9_Frame : public BitVector {
-
-        public:
-
-        VocoderAMR_5_9_Frame()
-                :BitVector(118+8)
-        { fillField(0,0x14,8); /* AMR-NB 12.2 */ }
-
-        /** Construct by unpacking a char[32]. */
-        VocoderAMR_5_9_Frame(const unsigned char *src)
-                :BitVector(118+8)
-        { unpack(src); }
-
-        BitVector payload() { return tail(8); }
-//        const BitVector payload() const { return tail(8); }
-
-};
-
-
-#endif
diff --git a/lib/decoding/tch_f_decoder_impl.cc b/lib/decoding/tch_f_decoder_impl.cc
index b4ff24f..89b8520 100644
--- a/lib/decoding/tch_f_decoder_impl.cc
+++ b/lib/decoding/tch_f_decoder_impl.cc
@@ -236,7 +236,7 @@
                           EFRBits[k-8] = TCHW[k] & 1;
 
                         // Map bits as AMR 12.2k
-                        EFRBits.map(GSM::g690_12_2_BitOrder, 244, payload);
+                        EFRBits.map(GSM::gAMRBitOrderTCH_AFS12_2, 244, payload);
 
                         // Put the whole frame (hdr + payload)
                         mTCHFrameLength = 32;
diff --git a/lib/decoding/tch_f_decoder_impl.h b/lib/decoding/tch_f_decoder_impl.h
index d603845..4c8a4b9 100644
--- a/lib/decoding/tch_f_decoder_impl.h
+++ b/lib/decoding/tch_f_decoder_impl.h
@@ -25,11 +25,9 @@
 
 #include "AmrCoder.h"
 #include "BitVector.h"
-#include "VocoderFrame.h"
 #include "GSM503Tables.h"
 #include "GSM610Tables.h"
 #include "GSM660Tables.h"
-#include "GSM690Tables.h"
 #include "ViterbiR204.h"
 #include <grgsm/decoding/tch_f_decoder.h>
 
