diff --git a/include/opus_multistream.h b/include/opus_multistream.h
index 24c524e0cd32000d4a9804eb13355a6a4b15b525..e6562a7e5a0763fe829a8a24d2be0906dd8dec72 100644
--- a/include/opus_multistream.h
+++ b/include/opus_multistream.h
@@ -35,6 +35,10 @@
 
 #include "opus.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct OpusMSEncoder OpusMSEncoder;
 typedef struct OpusMSDecoder OpusMSDecoder;
 
@@ -161,4 +165,8 @@ OPUS_EXPORT int opus_multistream_decoder_ctl(OpusMSDecoder *st, int request, ...
 /** Deallocate a multistream decoder state object */
 OPUS_EXPORT void opus_multistream_decoder_destroy(OpusMSDecoder *st);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* OPUS_MULTISTREAM_H */