diff --git a/reviewboard/static/rb/js/utils/textUtils.js b/reviewboard/static/rb/js/utils/textUtils.js
index baec1d72055b7aff892eb9d6074eda27d38e0e0b..24b30665aa30fb7b8103e34118a7d3c1db67abd1 100644
--- a/reviewboard/static/rb/js/utils/textUtils.js
+++ b/reviewboard/static/rb/js/utils/textUtils.js
@@ -65,17 +65,19 @@ RB.formatText = function($el, text, bugTrackerURL, options) {
             });
         }
 
-        // Now linkify and markdown-ize
-        markedUp = RB.LinkifyUtils.linkifyReviewRequests(markedUp, true);
-        markedUp = RB.LinkifyUtils.linkifyBugs(markedUp, bugTrackerURL, true);
-        markedUp = marked(markedUp);
-
-        /*
-         * markup() adds newlines to each directive, resulting in a trailing
-         * newline for the contents. Since this may be formatted inside a
-         * <pre>, we want to make sure we don't have that extra newline.
-         */
-        markedUp = markedUp.trim();
+        if (markedUp.length > 0) {
+            // Now linkify and markdown-ize
+            markedUp = RB.LinkifyUtils.linkifyReviewRequests(markedUp, true);
+            markedUp = RB.LinkifyUtils.linkifyBugs(markedUp, bugTrackerURL, true);
+            markedUp = marked(markedUp);
+
+            /*
+             * markup() adds newlines to each directive, resulting in a trailing
+             * newline for the contents. Since this may be formatted inside a
+             * <pre>, we want to make sure we don't have that extra newline.
+             */
+            markedUp = markedUp.trim();
+        }
 
         $el
             .empty()
diff --git a/reviewboard/templates/reviews/review_header.html b/reviewboard/templates/reviews/review_header.html
index 09e4604ea6e2a6c08c49c8c125a5d49fc63ee1f2..d984e2477c09cfc93d001ee284da76d292ff3086 100644
--- a/reviewboard/templates/reviews/review_header.html
+++ b/reviewboard/templates/reviews/review_header.html
@@ -8,9 +8,9 @@
   <input type="submit" id="btn-review-request-reopen"
          value="{% trans "Reopen for Review" %}" />
   <p><label for="changedescription">{% trans "Describe the submission (optional):" %}</label></p>
-  <pre id="changedescription" class="editable{% if close_description_rich_text %} loading{% endif %}" data-rich-text="{{close_description_rich_text|yesno:'true,false'}}">{{close_description}}</pre>
+  <pre id="changedescription" class="editable{% if close_description_rich_text and close_description %} loading{% endif %}" data-rich-text="{{close_description_rich_text|yesno:'true,false'}}">{{close_description}}</pre>
 {%  elif close_description %}
-  <pre id="changedescription"{% if close_description_rich_text %} class="loading"{% endif %} data-rich-text="{{close_description_rich_text|yesno:'true,false'}}">{{close_description}}</pre>
+  <pre id="changedescription"{% if close_description_rich_text and close_description %} class="loading"{% endif %} data-rich-text="{{close_description_rich_text|yesno:'true,false'}}">{{close_description}}</pre>
 {%  endif %}
  </div>
 {% elif review_request.status == 'D' %}
@@ -22,9 +22,9 @@
 {%  endif %}
 {%  if request.user.pk == review_request.submitter_id or perms.reviews.can_change_status %}
   <p><label for="changedescription">{% trans "Describe the reason it's discarded (optional):" %}</label></p>
-  <pre id="changedescription" class="editable{% if close_description_rich_text %} loading{% endif %}" data-rich-text="{{close_description_rich_text|yesno:'true,false'}}">{{close_description}}</pre>
+  <pre id="changedescription" class="editable{% if close_description_rich_text and close_description %} loading{% endif %}" data-rich-text="{{close_description_rich_text|yesno:'true,false'}}">{{close_description}}</pre>
 {%  elif close_description %}
-  <pre id="changedescription"{% if close_description_rich_text %} loading{% endif %} data-rich-text="{{close_description_rich_text|yesno:'true,false'}}">{{close_description}}</pre>
+  <pre id="changedescription"{% if close_description_rich_text and close_description %} loading{% endif %} data-rich-text="{{close_description_rich_text|yesno:'true,false'}}">{{close_description}}</pre>
 {%  endif %}
  </div>
 {% elif draft %}{# pending review #}
@@ -39,7 +39,7 @@
          value="{% trans "Discard Draft" %}" />
   <p><label for="changedescription">{% trans "Describe your changes (optional):" %}</label></p>
 {%    if draft.changedesc %}
-  <pre id="changedescription" class="editable{% if draft.changedesc.rich_text %} loading{% endif %}" data-rich-text="{{draft.changedesc.rich_text|yesno:'true,false'}}">{{draft.changedesc.text}}</pre>
+  <pre id="changedescription" class="editable{% if draft.changedesc.rich_text and draft.changedesc.text %} loading{% endif %}" data-rich-text="{{draft.changedesc.rich_text|yesno:'true,false'}}">{{draft.changedesc.text}}</pre>
 {%    else %}
   <pre id="changedescription" class="editable" data-rich-text="true"></pre>
 {%    endif %}
diff --git a/reviewboard/templates/reviews/review_request_box.html b/reviewboard/templates/reviews/review_request_box.html
index 177524e49ddfd8401622ce53954e2e4fc10bb747..75dceee0dfe4c9c8f4f6a40bb8a25284f13c21ac 100644
--- a/reviewboard/templates/reviews/review_request_box.html
+++ b/reviewboard/templates/reviews/review_request_box.html
@@ -158,11 +158,11 @@
 
  <div class="content" id="description-value-cell">
   <label for="description">{% trans "Description" %}:</label>
-  <pre id="description" class="editable required{% if review_request_details.rich_text %} loading{% endif %}" data-rich-text="{{review_request_details.rich_text|yesno:'true,false'}}">{{review_request_details.description|escape}}</pre>
+  <pre id="description" class="editable required{% if review_request_details.rich_text and review_request_details.description %} loading{% endif %}" data-rich-text="{{review_request_details.rich_text|yesno:'true,false'}}">{{review_request_details.description|escape}}</pre>
  </div>
  <div class="content" id="testing-done-value-cell">
   <label for="testing_done">{% trans "Testing Done" %}:</label>
-  <pre id="testing_done" class="editable{% if review_request_details.rich_text %} loading{% endif %}" data-rich-text="{{review_request_details.rich_text|yesno:'true,false'}}">{{review_request_details.testing_done|escape}}</pre>
+  <pre id="testing_done" class="editable{% if review_request_details.rich_text and review_request_details.testing_done %} loading{% endif %}" data-rich-text="{{review_request_details.rich_text|yesno:'true,false'}}">{{review_request_details.testing_done|escape}}</pre>
  </div>
 {% if request.user.pk == review_request.submitter_id or perms.reviews.can_edit_reviewrequest %}
  <div class="content" id="required-field-legend"><span class="required-flag">*</span> {% trans "Required Field" %}</div>
