diff --git a/celt b/celt
index c914f5ea509bfb0274858e6f2794bd1f7e3df57a..d25dd2bff9f111fcc8d2de802c1cca337db27873 160000
--- a/celt
+++ b/celt
@@ -1 +1 @@
-Subproject commit c914f5ea509bfb0274858e6f2794bd1f7e3df57a
+Subproject commit d25dd2bff9f111fcc8d2de802c1cca337db27873
diff --git a/doc/draft-ietf-codec-opus.xml b/doc/draft-ietf-codec-opus.xml
index 45f36fd6855258ad53e82e83fa552c089fc8caee..afbfa93642e92e493a7d3a9b2afaa5bfa93086dc 100644
--- a/doc/draft-ietf-codec-opus.xml
+++ b/doc/draft-ietf-codec-opus.xml
@@ -2,7 +2,7 @@
 <!DOCTYPE rfc SYSTEM 'rfc2629.dtd'>
 <?rfc toc="yes" symrefs="yes" ?>
 
-<rfc ipr="trust200902" category="std" docName="draft-ietf-codec-opus-05">
+<rfc ipr="trust200902" category="std" docName="draft-ietf-codec-opus-06">
 
 <front>
 <title abbrev="Interactive Audio Codec">Definition of the Opus Audio Codec</title>
@@ -39,7 +39,7 @@
 </author>
 
 
-<date day="14" month="March" year="2011" />
+<date day="31" month="March" year="2011" />
 
 <area>General</area>
 
@@ -198,11 +198,21 @@ There is thus a total of 32 configurations, encoded in 5 bits. One bit is used t
 <t>3:    arbitrary number of frames in the packet</t>
 </list>
 For code 2, the TOC byte is followed by the length of the first frame, encoded as described below.
-For code 3, the TOC byte is followed by a byte encoding the number of frames in the packet, with the MSB indicating VBR. In the VBR case, the byte indicating the number of frames is followed by N-1 frame 
+For code 3, the TOC byte is followed by a byte encoding the number of frames in the packet, with 
+bit 7 indicating VBR and bit 6 indicating that padding is inserted. In the VBR case, the byte 
+indicating the number of frames is followed by N-1 frame 
 lengths encoded as described below. As an additional limit, the audio duration contained
 within a packet MUST NOT exceed 120 ms.
 </t>
 
+<t>
+When padding is used, the number of bytes of padding is encoded in the following bytes. Values 
+from 0-254 indicate that 0-254 bytes of padding are included at the end. If the value is 255,
+then the padding is 254 bytes, plus the padding value encoded in the next byte. By using code
+255 multiple times, it is possible to add any amount of padding. The padding bytes produced by
+the encoder MUST be zero, but the decoder MUST accept any value for the padding bytes. 
+</t>
+
 <t>
 The compressed size of the frames (if needed) is indicated -- usually -- with one byte, with the following meaning:
 <list style="symbols">
@@ -2031,8 +2041,9 @@ This document has no actions for IANA.
 <t>
 Thanks to all other developers, including Raymond Chen, Soeren Skak Jensen, Gregory Maxwell, 
 Christopher Montgomery, Karsten Vandborg Soerensen, and Timothy Terriberry. We would also
-like to thank Igor Dyakonov, Jan Skoglund and Keith Yan for their help in testing the
-codec.
+like to thank Igor Dyakonov, Jan Skoglund for their help with subjective testing of the
+Opus codec. Thanks to John Ridges, Keith Yan and many others on the Opus and CELT mailing lists
+for their bug reports and feeback.
 </t>
 </section> 
 
diff --git a/src/opus.h b/src/opus.h
index f3704a5c5ed0a9a58fa652bce7ac3f1deda9af9b..c328b97d68e94e77990b2eeb775333cf180a4495 100644
--- a/src/opus.h
+++ b/src/opus.h
@@ -49,7 +49,7 @@ extern "C" {
 /** An (or more) invalid argument (e.g. out of range) */
 #define OPUS_BAD_ARG          -1
 /** The mode struct passed is invalid */
-#define OPUS_INVALID_MODE     -2
+#define OPUS_BUFFER_TOO_SMALL -2
 /** An internal error was detected */
 #define OPUS_INTERNAL_ERROR   -3
 /** The data passed (e.g. compressed data to decoder) is corrupted */