diff --git a/audio/gsta2dpsink.c b/audio/gsta2dpsink.c
index 2066496..a80fd79 100644
--- a/audio/gsta2dpsink.c
+++ b/audio/gsta2dpsink.c
@@ -41,6 +41,14 @@
 
 #include "gsta2dpsink.h"
 
+enum {
+        NOT_CONFIGURED,
+        CONFIGURING_INIT,
+        CONFIGURING_SENT_CONF,
+        CONFIGURING_RCVD_DEV_CONF,
+        CONFIGURED
+};
+
 GST_DEBUG_CATEGORY_STATIC(a2dp_sink_debug);
 #define GST_CAT_DEFAULT a2dp_sink_debug
 
@@ -128,8 +136,9 @@
 {
 	GstA2dpSink *self = GST_A2DP_SINK(basesink);
 
+	GST_INFO_OBJECT(self, "stop");
+
 	self->con_state = NOT_CONFIGURED;
-	self->total = 0;
 
 	if (self->watch_id != 0) {
 		g_source_remove(self->watch_id);
@@ -357,8 +366,10 @@
 	gchar buf[IPC_MTU];
 	GIOError io_error;
 	gsize ret;
+	gint total;
 	struct ipc_packet *pkt = (void *) buf;
 	struct ipc_data_cfg *cfg = (void *) pkt->data;
+	struct ipc_codec_sbc *sbc = (void *) cfg->data;
 
 	memset(buf, 0, sizeof(buf));
 
@@ -370,7 +381,7 @@
 		return FALSE;
 	}
 
-	sink->total = ret;
+	total = ret;
 	if (pkt->type != PKT_TYPE_CFG_RSP) {
 		GST_ERROR_OBJECT(sink, "Unexpected packet type %d "
 					"received", pkt->type);
@@ -388,18 +399,6 @@
 		return FALSE;
 	}
 
-	return TRUE;
-}
-
-static gboolean gst_a2dp_sink_conf_recv_dev_conf(GstA2dpSink *sink)
-{
-	gchar buf[IPC_MTU];
-	GIOError io_error;
-	gsize ret;
-	struct ipc_packet *pkt = (void *) buf;
-	struct ipc_data_cfg *cfg = (void *) pkt->data;
-	struct ipc_codec_sbc *sbc = (void *) cfg->data;
-
 	io_error = g_io_channel_read(sink->server, (gchar *) sbc,
 					sizeof(*sbc), &ret);
 	if (io_error != G_IO_ERROR_NONE) {
@@ -411,15 +410,15 @@
 		return FALSE;
 	}
 
-	sink->total += ret;
-	GST_DEBUG_OBJECT(sink, "OK - %d bytes received", sink->total);
-#if 0
-	if (pkt->length != (sink->total - sizeof(struct ipc_packet))) {
+	total += ret;
+	GST_DEBUG_OBJECT(sink, "OK - %d bytes received", total);
+
+	if (pkt->length != (total - sizeof(struct ipc_packet))) {
 		GST_ERROR_OBJECT(sink, "Error while configuring device: "
 			"packet size doesn't match");
 		return FALSE;
 	}
-#endif
+
 	memcpy(&sink->data->cfg, cfg, sizeof(*cfg));
 
 	GST_DEBUG_OBJECT(sink, "Device configuration:\n\tchannel=%p\n\t"
@@ -516,15 +515,10 @@
 	switch (sink->con_state) {
 	case CONFIGURING_SENT_CONF:
 		if (gst_a2dp_sink_conf_resp(sink))
-			sink->con_state = CONFIGURING_RCVD_CONF_RSP;
-		else
-			GST_A2DP_SINK_CONFIGURATION_FAIL(sink);
-		break;
-	case CONFIGURING_RCVD_CONF_RSP:
-		if (gst_a2dp_sink_conf_recv_dev_conf(sink))
 			sink->con_state = CONFIGURING_RCVD_DEV_CONF;
 		else
 			GST_A2DP_SINK_CONFIGURATION_FAIL(sink);
+		break;
 	case CONFIGURING_RCVD_DEV_CONF:
 		if (gst_a2dp_sink_conf_recv_stream_fd(sink))
 			GST_A2DP_SINK_CONFIGURATION_SUCCESS(sink);
@@ -569,6 +563,8 @@
 	gint sk;
 	gint err;
 
+	GST_INFO_OBJECT(self, "start");
+
 	self->watch_id = 0;
 
 	sk = socket(PF_LOCAL, SOCK_STREAM, 0);
@@ -593,10 +589,10 @@
 			G_IO_ERR | G_IO_NVAL, server_callback, self);
 
 	self->data = g_new0(struct bluetooth_data, 1);
+	memset(self->data, 0, sizeof(struct bluetooth_data));
 
 	self->stream = NULL;
 	self->con_state = NOT_CONFIGURED;
-	self->total = 0;
 
 	self->waiting_con_conf = FALSE;
 
@@ -789,7 +785,6 @@
 
 	self->stream = NULL;
 	self->con_state = NOT_CONFIGURED;
-	self->total = 0;
 
 	self->con_conf_end = g_cond_new();
 	self->waiting_con_conf = FALSE;
diff --git a/audio/gsta2dpsink.h b/audio/gsta2dpsink.h
index c9bcabd..76d512b 100644
--- a/audio/gsta2dpsink.h
+++ b/audio/gsta2dpsink.h
@@ -37,15 +37,6 @@
 #define GST_IS_A2DP_SINK_CLASS(obj) \
 	(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_A2DP_SINK))
 
-enum {
-	NOT_CONFIGURED,
-	CONFIGURING_INIT,
-	CONFIGURING_SENT_CONF,
-	CONFIGURING_RCVD_CONF_RSP,
-	CONFIGURING_RCVD_DEV_CONF,
-	CONFIGURED
-};
-
 typedef struct _GstA2dpSink GstA2dpSink;
 typedef struct _GstA2dpSinkClass GstA2dpSinkClass;
 
@@ -66,7 +57,6 @@
 	gboolean waiting_con_conf;
 	GMutex *sink_lock;
 
-	gint total;
 	guint watch_id;
 };
 
