     }
 
     func webViewDidFinishLoad(_ webView: UIWebView) {
-        webView.isHidden = false
-    }
+        // if the cell is hidden, its been put back in the reuse pool
+        guard self.isHidden == false,
+            let contentHeight = webView.stringByEvaluatingJavaScript(from: "document.body.offsetHeight") as NSString?
+            else { return }
 
-    // MARK: KVO
-
-    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
-        if keyPath == IssueCommentHtmlCell.WebviewKeyPath {
-            delegate?.webViewDidResize(
-                cell: self,
-                html: body,
-                cellWidth: contentView.bounds.width,
-                size: webView.scrollView.contentSize
-            )
-        }
+        let size = CGSize(width: contentView.bounds.width, height: CGFloat(contentHeight.floatValue))
+        delegate?.webViewDidResize(cell: self, html: body, cellWidth: size.width, size: size)
     }
 
 }

    override func layoutSubviews() {
        super.layoutSubviews()
        if webView.frame != contentView.bounds {
            webView.frame = contentView.bounds
        }
    }

        fatalError("init(coder:) has not been implemented")
    }

    override func prepareForReuse() {
        super.prepareForReuse()
        webView.isHidden = true
