diff --git a/js/tooltip.js b/js/tooltip.js
index aa6202f50b29a8c2a83424e3e1ef18f6ce68104c..5192d38fcad244a8184828419c37d6c44924cfeb 100644
--- a/js/tooltip.js
+++ b/js/tooltip.js
@@ -329,6 +329,10 @@
     var isSvg  = window.SVGElement && el instanceof window.SVGElement
 
     var elRect    = el.getBoundingClientRect()
+    if (elRect.width == null) {
+      // width and height are missing in IE8, so compute them manually; see https://github.com/twbs/bootstrap/issues/14093
+      elRect = $.extend({}, elRect, { width: elRect.right - elRect.left, height: elRect.bottom - elRect.top })
+    }
     var elOffset  = isBody ? { top: 0, left: 0 } : $element.offset()
     var scroll    = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
     var outerDims = isSvg ? {} : {