Index: Makefile.inc
===================================================================
--- Makefile.inc	(revision 4070)
+++ Makefile.inc	(revision 4152)
@@ -16,5 +16,5 @@
 # libroardsp:
 LIBROARDSP_V    = $(COMMON_SOVERSION)
-DSP_CODECLIBS   = $(lib_celt) $(lib_speex) $(lib_speexdsp)
+DSP_CODECLIBS   = $(lib_celt) $(lib_celt0) $(lib_speex) $(lib_speexdsp)
 DSP_AUXLIBS     = $(lib_samplerate)
 LIBROARDSP_NS   = $(DSP_CODECLIBS) $(DSP_AUXLIBS) $(LIBROAR) $(lib_m)
Index: include/roaraudio/audio.h
===================================================================
--- include/roaraudio/audio.h	(revision 4000)
+++ include/roaraudio/audio.h	(revision 4152)
@@ -323,5 +323,10 @@
 #define ROAR_SPEEX_MODE_UWB        3
 
+#ifdef ROAR_HAVE_CELT_VERSION_0_7_1
+#define ROAR_CELT_MAGIC            "RoarCELT1"
+#else
 #define ROAR_CELT_MAGIC            "RoarCELT0"
+#endif
+
 #define ROAR_CELT_MAGIC_LEN        9
 
Index: libroardsp/transcode_celt.c
===================================================================
--- libroardsp/transcode_celt.c	(revision 3811)
+++ libroardsp/transcode_celt.c	(revision 4152)
@@ -31,4 +31,8 @@
 #define _SIZE_LEN 2
 
+#ifdef ROAR_HAVE_CELT_VERSION_0_7_1
+typedef celt_int16 celt_int16_t;
+#endif
+
 int roar_xcoder_celt_init       (struct roar_xcoder * state) {
  struct roar_xcoder_celt * self = roar_mm_malloc(sizeof(struct roar_xcoder_celt));
@@ -58,5 +62,9 @@
  }
 
+#ifdef ROAR_HAVE_CELT_VERSION_0_7_1
+ self->mode                 = celt_mode_create(info->rate, self->frame_size, NULL);
+#else
  self->mode                 = celt_mode_create(info->rate, info->channels, self->frame_size, NULL);
+#endif
 
  if ( self->mode == NULL ) {
@@ -67,5 +75,9 @@
 
  if (state->encode) {
+#ifdef ROAR_HAVE_CELT_VERSION_0_7_1
+  self->encoder = celt_encoder_create(self->mode, info->channels, NULL);
+#else
   self->encoder = celt_encoder_create(self->mode);
+#endif
   if ( self->encoder == NULL ) {
    roar_xcoder_celt_uninit(state);
@@ -73,5 +85,9 @@
   }
  } else {
+#ifdef ROAR_HAVE_CELT_VERSION_0_7_1
+  self->decoder = celt_decoder_create(self->mode, info->channels, NULL);
+#else
   self->decoder = celt_decoder_create(self->mode);
+#endif
   if ( self->decoder == NULL ) {
    roar_xcoder_celt_uninit(state);
Index: roard/Makefile
===================================================================
--- roard/Makefile	(revision 4004)
+++ roard/Makefile	(revision 4152)
@@ -19,5 +19,6 @@
 LDFLAGS   = -g -rdynamic -L../lib/ $(LDPATH)
 DRVLIBS   = $(lib_esd) $(lib_ossaudio) $(lib_ao) $(lib_shout) $(lib_sndio) $(lib_rsound) $(lib_portaudio) $(lib_pablio) $(lib_asound) $(lib_winmm) $(lib_pulse_simple)
-CODECLIBS = $(lib_vorbisfile) $(lib_vorbisenc) $(lib_vorbis) $(lib_celt) $(lib_fishsound) $(lib_speex) $(lib_speexdsp)
+CODEC_CELT= $(lib_celt) $(lib_celt0)
+CODECLIBS = $(lib_vorbisfile) $(lib_vorbisenc) $(lib_vorbis) $(lib_fishsound) $(lib_speex) $(lib_speexdsp) $(CODEC_CELT)
 CONTLIBS  = $(lib_oggz) $(lib_sndfile) $(lib_ogg) $(lib_raum)
 OWNLIBS   = $(LIBROAREIO) $(LIBROARLIGHT) $(LIBROARMIDI) $(LIBROARDSP) $(LIBROAR)
Index: roard/codecfilter_celt.c
===================================================================
--- roard/codecfilter_celt.c	(revision 3811)
+++ roard/codecfilter_celt.c	(revision 4152)
@@ -26,4 +26,8 @@
 #include "roard.h"
 #ifdef ROAR_HAVE_LIBCELT
+
+#ifdef ROAR_HAVE_CELT_VERSION_0_7_1
+typedef celt_int16 celt_int16_t;
+#endif
 
 int cf_celt_open(CODECFILTER_USERDATA_T * inst, int codec,
@@ -81,6 +85,10 @@
   return -1;
  }
- 
+
+#ifdef ROAR_HAVE_CELT_VERSION_0_7_1
+ self->mode                 = celt_mode_create(s->info.rate, self->frame_size, NULL);
+#else
  self->mode                 = celt_mode_create(s->info.rate, s->info.channels, self->frame_size, NULL);
+#endif
 
  if ( !self->mode ) {
@@ -90,10 +98,23 @@
 
  if ( s->dir == ROAR_DIR_PLAY ) {
+#ifdef ROAR_HAVE_CELT_VERSION_0_7_1
+   self->decoder = celt_decoder_create(self->mode, s->info.channels, NULL);
+#else
    self->decoder = celt_decoder_create(self->mode);
+#endif
  } else if ( s->dir == ROAR_DIR_MONITOR || s->dir == ROAR_DIR_OUTPUT ) {
+#ifdef ROAR_HAVE_CELT_VERSION_0_7_1
+   self->encoder = celt_encoder_create(self->mode, s->info.channels, NULL);
+#else
    self->encoder = celt_encoder_create(self->mode);
+#endif
  } else if ( s->dir == ROAR_DIR_BIDIR ) {
+#ifdef ROAR_HAVE_CELT_VERSION_0_7_1
+   self->decoder = celt_decoder_create(self->mode, s->info.channels, NULL);
+   self->encoder = celt_encoder_create(self->mode, s->info.channels, NULL);
+#else
    self->decoder = celt_decoder_create(self->mode);
    self->encoder = celt_encoder_create(self->mode);
+#endif
  } else {
   celt_mode_destroy(self->mode);
