diff --git a/src/fe-gnome/topic-label.c b/src/fe-gnome/topic-label.c
index a7d1883..334a196 100644
--- a/src/fe-gnome/topic-label.c
+++ b/src/fe-gnome/topic-label.c
@@ -267,8 +267,7 @@ topic_label_change_current (TopicLabel *label)
 	g_free (title);
 
 	gchar *topic = priv->current->topic;
-	GtkTextBuffer *buffer = gtk_text_buffer_new (NULL);
-        gtk_text_view_set_buffer (GTK_TEXT_VIEW (entry), buffer);
+	GtkTextBuffer *buffer = gtk_text_view_get_buffer ( GTK_TEXT_VIEW (entry));
 	g_signal_connect (G_OBJECT (buffer), "insert-text", G_CALLBACK (topic_entry_activate), dialog);
 	if (topic) {
         	gtk_text_buffer_set_text (buffer, topic, -1);
@@ -282,6 +281,12 @@ topic_label_change_current (TopicLabel *label)
 		gtk_widget_hide (dialog);
 		gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (entry), GTK_WRAP_NONE);
 		gchar *newtopic = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
+		/* bz:536916 – Pressing "Enter" in the middle of editing channel topic truncates 
+		 * ignore "\n" aka enter key 
+		 */
+		glong i, len = g_utf8_strlen (newtopic, -1);
+	        for (i=0; i< len; i++) 
+			if (newtopic[i]=='\n') newtopic[i]=' ';
 		priv->current->server->p_topic (priv->current->server, priv->current->channel, newtopic);
 		g_free (newtopic);
 	}
@@ -312,9 +318,9 @@ topic_label_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
 }
 
 static void
-topic_entry_activate (GtkTextBuffer *textbuffer, GtkTextIter *arg1, gchar *text, gint len, GtkDialog *dialog)
+topic_entry_activate (GtkTextBuffer *buffer, GtkTextIter *iter, gchar *text, gint len, GtkDialog *dialog)
 {
-	if (strncmp (text, "\n", len) == 0) {
+	if(gtk_text_iter_is_end(iter) && strncmp (text, "\n", len) == 0) {
 		gtk_dialog_response (dialog, GTK_RESPONSE_OK);
 	}
 }
