diff --git a/js/tooltip.js b/js/tooltip.js
index e730db6e95672ea0faf9ad97359b6a0f30f0f3c7..93e21e691997bc601318cfbb626aa10c81fab0da 100644
--- a/js/tooltip.js
+++ b/js/tooltip.js
@@ -324,6 +324,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 ? {} : {