diff --git a/celt/celt.c b/celt/celt.c
index 7f812a8fe40b6d73b84532e7574383112d326f54..0928a0423d7024ae33f9492ace9dd20e7b24493f 100644
--- a/celt/celt.c
+++ b/celt/celt.c
@@ -66,6 +66,7 @@ static const unsigned char spread_icdf[4] = {25, 23, 2, 0};
 
 static const unsigned char tapset_icdf[3]={2,1,0};
 
+#ifdef CUSTOM_MODES
 static const unsigned char toOpusTable[20] = {
       0xE0, 0xE8, 0xF0, 0xF8,
       0xC0, 0xC8, 0xD0, 0xD8,
@@ -99,6 +100,7 @@ static inline int fromOpus(unsigned char c)
    else
       return fromOpusTable[(c>>3)-16] | (c&0x7);
 }
+#endif /*CUSTOM_MODES*/
 
 #define COMBFILTER_MAXPERIOD 1024
 #define COMBFILTER_MINPERIOD 15
@@ -124,8 +126,12 @@ static int resampling_factor(opus_int32 rate)
       ret = 6;
       break;
    default:
+#ifdef CUSTOM_MODES
       ret = 0;
       break;
+#else
+      celt_assert(0);
+#endif
    }
    return ret;
 }
@@ -232,10 +238,7 @@ int celt_encoder_init(CELTEncoder *st, opus_int32 sampling_rate, int channels)
    if (ret != OPUS_OK)
       return ret;
    st->upsample = resampling_factor(sampling_rate);
-   if (st->upsample==0)
-      return OPUS_BAD_ARG;
-   else
-      return OPUS_OK;
+   return OPUS_OK;
 }
 
 OPUS_CUSTOM_NOSTATIC int opus_custom_encoder_init(CELTEncoder *st, const CELTMode *mode, int channels)
@@ -958,6 +961,7 @@ int celt_encode_with_ec(CELTEncoder * restrict st, const opus_val16 * pcm, int f
       nbFilledBytes=(tell+4)>>3;
    }
 
+#ifdef CUSTOM_MODES
    if (st->signalling && enc==NULL)
    {
       int tmp = (st->mode->effEBands-st->end)>>1;
@@ -976,6 +980,9 @@ int celt_encode_with_ec(CELTEncoder * restrict st, const opus_val16 * pcm, int f
       compressed++;
       nbCompressedBytes--;
    }
+#else
+   celt_assert(st->signalling==0);
+#endif
 
    /* Can't produce more than 1275 output bytes */
    nbCompressedBytes = IMIN(nbCompressedBytes,1275);
@@ -985,8 +992,10 @@ int celt_encode_with_ec(CELTEncoder * restrict st, const opus_val16 * pcm, int f
    {
       opus_int32 den=st->mode->Fs>>BITRES;
       vbr_rate=(st->bitrate*frame_size+(den>>1))/den;
+#ifdef CUSTOM_MODES
       if (st->signalling)
          vbr_rate -= 8<<BITRES;
+#endif
       effectiveBytes = vbr_rate>>(3+BITRES);
    } else {
       opus_int32 tmp;
@@ -1650,8 +1659,10 @@ int celt_encode_with_ec(CELTEncoder * restrict st, const opus_val16 * pcm, int f
       it's already filled with zeros */
    ec_enc_done(enc);
 
+#ifdef CUSTOM_MODES
    if (st->signalling)
       nbCompressedBytes++;
+#endif
 
    RESTORE_STACK;
    if (ec_get_error(enc))
@@ -1819,13 +1830,14 @@ int opus_custom_encoder_ctl(CELTEncoder * restrict st, int request, ...)
          st->tonal_average = 256;
       }
       break;
+#ifdef CUSTOM_MODES
       case CELT_SET_INPUT_CLIPPING_REQUEST:
       {
          opus_int32 value = va_arg(ap, opus_int32);
          st->clip = value;
       }
       break;
-#ifdef OPUS_BUILD
+#endif
       case CELT_SET_SIGNALLING_REQUEST:
       {
          opus_int32 value = va_arg(ap, opus_int32);
@@ -1848,7 +1860,6 @@ int opus_custom_encoder_ctl(CELTEncoder * restrict st, int request, ...)
          *value=st->rng;
       }
       break;
-#endif
       default:
          goto bad_request;
    }
@@ -2292,6 +2303,7 @@ int celt_decode_with_ec(CELTDecoder * restrict st, const unsigned char *data, in
    oldLogE2 = oldLogE + 2*st->mode->nbEBands;
    backgroundLogE = oldLogE2  + 2*st->mode->nbEBands;
 
+#ifdef CUSTOM_MODES
    if (st->signalling && data!=NULL)
    {
       int data0=data[0];
@@ -2314,6 +2326,9 @@ int celt_decode_with_ec(CELTDecoder * restrict st, const unsigned char *data, in
       else
          frame_size = st->mode->shortMdctSize<<LM;
    } else {
+#else
+   {
+#endif
       for (LM=0;LM<=st->mode->maxLM;LM++)
          if (st->mode->shortMdctSize<<LM==frame_size)
             break;