diff --git a/NEWS b/NEWS
index 71c02c165..1a1952175 100644
--- a/NEWS
+++ b/NEWS
@@ -106,6 +106,16 @@ ver 0.16 (20??/??/??)
 * make single mode 'sticky'
 
 
+ver 0.15.13 (2010/10/10)
+* output_thread: fix race condition after CANCEL command
+* output:
+  - httpd: fix random data in stream title
+  - httpd: MIME type audio/ogg for Ogg Vorbis
+* input:
+  - rewind: update MIME not only once
+  - rewind: enable for MMS
+
+
 ver 0.15.12 (2010/07/20)
 * input:
   - curl: remove assertion after curl_multi_fdset()
diff --git a/src/encoder/vorbis_encoder.c b/src/encoder/vorbis_encoder.c
index 986135789..9dac3564d 100644
--- a/src/encoder/vorbis_encoder.c
+++ b/src/encoder/vorbis_encoder.c
@@ -386,7 +386,7 @@ vorbis_encoder_read(struct encoder *_encoder, void *_dest, size_t length)
 static const char *
 vorbis_encoder_get_mime_type(G_GNUC_UNUSED struct encoder *_encoder)
 {
-	return  "application/x-ogg";
+	return  "audio/ogg";
 }
 
 const struct encoder_plugin vorbis_encoder_plugin = {
diff --git a/src/icy_server.c b/src/icy_server.c
index b655ea49c..62a2c67af 100644
--- a/src/icy_server.c
+++ b/src/icy_server.c
@@ -96,6 +96,7 @@ icy_server_metadata_page(const struct tag *tag, ...)
 	gchar stream_title[(1 + 255 - 28) * 16]; // Length + Metadata -
 						 // "StreamTitle='';StreamUrl='';"
 						 // = 4081 - 28
+	stream_title[0] =  '\0';
 
 	last_item = -1;
 
diff --git a/src/input/curl_input_plugin.c b/src/input/curl_input_plugin.c
index f1c54cdbe..ae645bddf 100644
--- a/src/input/curl_input_plugin.c
+++ b/src/input/curl_input_plugin.c
@@ -264,7 +264,7 @@ input_curl_select(struct input_curl *c, GError **error_r)
 		return -1;
 	}
 
-#if LIBCURL_VERSION_NUM >= 0x070f00
+#if LIBCURL_VERSION_NUM >= 0x070f04
 	long timeout2;
 	mcode = curl_multi_timeout(c->multi, &timeout2);
 	if (mcode != CURLM_OK) {
diff --git a/src/input/rewind_input_plugin.c b/src/input/rewind_input_plugin.c
index eea59096b..714927c60 100644
--- a/src/input/rewind_input_plugin.c
+++ b/src/input/rewind_input_plugin.c
@@ -85,10 +85,11 @@ copy_attributes(struct input_rewind *r)
 	dest->size = src->size;
 	dest->offset = src->offset;
 
-	if (dest->mime == NULL && src->mime != NULL)
-		/* this is set only once, and the duplicated pointer
-		   is freed by input_stream_close() */
+	if (src->mime != NULL) {
+		if (dest->mime != NULL)
+			g_free(dest->mime);
 		dest->mime = g_strdup(src->mime);
+	}
 }
 
 static void
diff --git a/src/notify.c b/src/notify.c
index dd55c45fa..d148a4bfc 100644
--- a/src/notify.c
+++ b/src/notify.c
@@ -49,3 +49,10 @@ void notify_signal(struct notify *notify)
 	g_cond_signal(notify->cond);
 	g_mutex_unlock(notify->mutex);
 }
+
+void notify_clear(struct notify *notify)
+{
+	g_mutex_lock(notify->mutex);
+	notify->pending = false;
+	g_mutex_unlock(notify->mutex);
+}
diff --git a/src/notify.h b/src/notify.h
index bcc050bdc..0c657f2fb 100644
--- a/src/notify.h
+++ b/src/notify.h
@@ -45,4 +45,9 @@ void notify_wait(struct notify *notify);
  */
 void notify_signal(struct notify *notify);
 
+/**
+ * Clears a pending notification.
+ */
+void notify_clear(struct notify *notify);
+
 #endif