diff --git a/cms/static/js/spec/views/settings/main_spec.js b/cms/static/js/spec/views/settings/main_spec.js
index e87d706..ff5a7ce 100644
--- a/cms/static/js/spec/views/settings/main_spec.js
+++ b/cms/static/js/spec/views/settings/main_spec.js
@@ -333,7 +333,7 @@ define([
                             "name": "test_name",
                             "title": "test_title",
                             "organization": "test_org",
-                            "image": "",
+                            "image": "test_image",
                             "bio": "test_bio"
                         }]
                     }
@@ -344,6 +344,7 @@ define([
             this.view.$("#course-instructor-title-0").val('test_title').trigger('change');
             this.view.$("#course-instructor-organization-0").val('test_org').trigger('change');
             this.view.$("#course-instructor-bio-0").val('test_bio').trigger('change');
+            this.view.$("#course-instructor-image-0").val('test_image').trigger('change');
 
             this.view.saveView();
             AjaxHelpers.expectJsonRequest(
diff --git a/cms/static/js/views/settings/main.js b/cms/static/js/views/settings/main.js
index dcdf766..9e6f99c 100644
--- a/cms/static/js/views/settings/main.js
+++ b/cms/static/js/views/settings/main.js
@@ -236,6 +236,13 @@ var DetailsView = ValidatingView.extend({
             this.model.set('instructor_info', {instructors: instructors});
             this.showNotificationBar();
             break;
+        case 'course-instructor-image-' + index:
+            instructors = this.model.get('instructor_info').instructors.slice(0);
+            instructors[index].image = $(event.currentTarget).val();
+            this.model.set('instructor_info', {instructors: instructors});
+            this.showNotificationBar();
+            this.updateImagePreview(event.currentTarget, '#course-instructor-image-preview-' + index);
+            break;
         case 'course-image-url':
             this.updateImageField(event, 'course_image_name', '#course-image');
             break;
@@ -308,10 +315,13 @@ var DetailsView = ValidatingView.extend({
         // If image path is entered directly, we need to strip the asset prefix
         image_name = _.last(image_name.split('block@'));
         this.model.set(image_field, image_name);
+        this.updateImagePreview(event.currentTarget, selector);
+    },
+    updateImagePreview: function(imagePathInputElement, previewSelector) {
         // Wait to set the image src until the user stops typing
         clearTimeout(this.imageTimer);
         this.imageTimer = setTimeout(function() {
-            $(selector).attr('src', $(event.currentTarget).val());
+            $(previewSelector).attr('src', $(imagePathInputElement).val());
         }, 1000);
     },
     removeVideo: function(event) {
diff --git a/cms/templates/js/course-instructor-details.underscore b/cms/templates/js/course-instructor-details.underscore
index 4d3ed4b..f437e69 100644
--- a/cms/templates/js/course-instructor-details.underscore
+++ b/cms/templates/js/course-instructor-details.underscore
@@ -26,11 +26,11 @@
   <div class="field image field-course-instructor-image current-instructor-image">
   <label for="course-instructor-image-<%- index %>"><%- gettext("Photo") %></label>
     <span class="wrapper-instructor-image">
-        <img class="instructor-image" src="<%- data['image']%>" alt="<%- gettext('Instructor Photo') %>" />
+        <img id="course-instructor-image-preview-<%- index %>" class="instructor-image" src="<%- data['image']%>" alt="<%- gettext('Instructor Photo') %>" />
     </span>
     <div class="wrapper-input">
       <div class="input">
-        <input type="text" dir="ltr" class="long new-instructor-image-url" id="course-instructor-image-<%- index %>" value="<%- data['image'] %>" data-field="image" placeholder="<%- gettext('Instructor Photo URL') %>" autocomplete="off" />
+        <input type="text" dir="ltr" class="long new-instructor-image-url" id="course-instructor-image-<%- index %>" value="<%- data['image'] %>" data-index="<%- index %>"" data-field="image" placeholder="<%- gettext('Instructor Photo URL') %>" autocomplete="off" />
         <span class="tip tip-stacked"><%- gettext("Please add a photo of the instructor (Note: only JPEG or PNG format supported)")%></span>
       </div>
       <button type="button" class="action action-upload-instructor-image" data-index=<%- index %>><%- gettext("Upload Photo") %></button>