diff --git a/common/static/coffee/spec/discussion/view/discussion_thread_edit_view_spec.js b/common/static/coffee/spec/discussion/view/discussion_thread_edit_view_spec.js
index a75303ca2e01e80cff855ec712b65865b3b0743f..76487445bddc94656f845d973ed5ebbbfdeb621e 100644
--- a/common/static/coffee/spec/discussion/view/discussion_thread_edit_view_spec.js
+++ b/common/static/coffee/spec/discussion/view/discussion_thread_edit_view_spec.js
@@ -26,16 +26,16 @@
             };
         });
 
-        testUpdate = function(view, thread) {
+        testUpdate = function(view, thread, newTopicId, newTopicName) {
             spyOn($, 'ajax').andCallFake(function(params) {
                 expect(params.url.path()).toEqual(DiscussionUtil.urlFor('update_thread', 'dummy_id'));
                 expect(params.data.thread_type).toBe('discussion');
-                expect(params.data.commentable_id).toBe('other_topic');
+                expect(params.data.commentable_id).toBe(newTopicId);
                 expect(params.data.title).toBe('changed thread title');
                 params.success();
                 return {always: function() {}};
             });
-            view.$el.find('a.topic-title')[1].click(); // set new topic
+            view.$el.find('a.topic-title[data-discussion-id="'+newTopicId+'"]').click(); // set new topic
             view.$('.edit-post-title').val('changed thread title'); // set new title
             view.$("label[for$='post-type-discussion']").click(); // set new thread type
             view.$('.post-update').click();
@@ -43,20 +43,20 @@
 
             expect(thread.get('title')).toBe('changed thread title');
             expect(thread.get('thread_type')).toBe('discussion');
-            expect(thread.get('commentable_id')).toBe('other_topic');
-            expect(thread.get('courseware_title')).toBe('Other Topic');
+            expect(thread.get('commentable_id')).toBe(newTopicId);
+            expect(thread.get('courseware_title')).toBe(newTopicName);
             expect(view.$('.edit-post-title')).toHaveValue('');
             expect(view.$('.wmd-preview p')).toHaveText('');
         };
 
         it('can save new data correctly in tab mode', function() {
             this.createEditView();
-            testUpdate(this.view, this.thread);
+            testUpdate(this.view, this.thread, 'other_topic', 'Other Topic');
         });
 
         it('can save new data correctly in inline mode', function() {
             this.createEditView({"mode": "inline"});
-            testUpdate(this.view, this.thread);
+            testUpdate(this.view, this.thread, 'other_topic', 'Other Topic');
         });
 
         testCancel = function(view) {
@@ -73,5 +73,45 @@
             this.createEditView({"mode": "inline"});
             testCancel(this.view);
         });
+        describe('renderComments', function() {
+            beforeEach(function() {
+                this.course_settings = new DiscussionCourseSettings({
+                    'category_map': {
+                        'children': ['Topic', 'General', 'Basic Question'],
+                        'entries': {
+                            'Topic': {
+                                'is_cohorted': true,
+                                'id': 'topic'
+                            },
+                            "General": {
+                                "sort_key": "General",
+                                "is_cohorted": false,
+                                "id": "6.00.1x_General"
+                            },
+                            "Basic Question": {
+                                "is_cohorted": false,
+                                "id": "6>00'1x\"Basic_Question"
+                            }
+                        }
+                    },
+                    'is_cohorted': true
+                });
+            });
+            it('can save new data correctly for current discussion id without dots', function () {
+                this.createEditView({topicId: "topic"});
+                testUpdate(this.view, this.thread, "6.00.1x_General", "General");
+            });
+
+            it('can save new data correctly for current discussion id with dots', function () {
+                this.createEditView({topicId: "6.00.1x_General"});
+                testUpdate(this.view, this.thread, "6>00'1x\"Basic_Question", "Basic Question");
+            });
+
+            it('can save new data correctly for current discussion id with special characters', function () {
+                this.createEditView({topicId: "6>00'1x\"Basic_Question"});
+                testUpdate(this.view, this.thread, "6.00.1x_General", "General");
+            });
+        });
+
     });
 }).call(this);
diff --git a/common/static/coffee/src/discussion/views/discussion_topic_menu_view.js b/common/static/coffee/src/discussion/views/discussion_topic_menu_view.js
index 57e44e626aae518740076bc02157bb01611d8ff3..c205a7535ed9c33e07d75d025e642e98762c6775 100644
--- a/common/static/coffee/src/discussion/views/discussion_topic_menu_view.js
+++ b/common/static/coffee/src/discussion/views/discussion_topic_menu_view.js
@@ -40,7 +40,7 @@
                 this.selectedTopic = this.$('.js-selected-topic');
                 this.hideTopicDropdown();
                 if (this.getCurrentTopicId()) {
-                    this.setTopic(this.$('a.topic-title').filter('[data-discussion-id=' + this.getCurrentTopicId() + ']'));
+                    this.setTopic(this.$('a.topic-title').filter('[data-discussion-id="' + this.getCurrentTopicId() + '"]'));
                 } else {
                     this.setTopic(this.$('a.topic-title').first());
                 }