diff --git a/jquery_update.module b/jquery_update.module
index 3b62d97..7b5fbdf 100644
--- a/jquery_update.module
+++ b/jquery_update.module
@@ -125,6 +125,17 @@ function jquery_update_library_alter(&$javascript, $module) {
       $javascript['drupal.states']['js']['misc/states.js']['data'] = $path . '/replace/misc/1.7/states.js';
     }
 
+    // Fix outerWidth() and outerHeight() for jQuery 1.8 and up.
+    // @see http://drupal.org/node/1951588
+    if (version_compare($version, '1.8', '>=')) {
+      $outer_fn_fix_file = $path . '/replace/misc/1.8/jquery.outer_fn_fix' . $min . '.js';
+      $javascript['jquery']['js'][$outer_fn_fix_file] = array(
+        'data' => $outer_fn_fix_file,
+        'group' => JS_LIBRARY,
+        'weight' => -19.999999999,
+      );
+    }
+
     // Replace files for Jquery 1.9 and up
     if (version_compare($version, '1.9', '>=')) {
       $javascript['jquery.bbq']['js']['misc/jquery.ba-bbq.js']['data'] = $path . '/replace/misc/1.9/jquery.ba-bbq' . $min . '.js';
diff --git a/replace/misc/1.8/jquery.outer_fn_fix.js b/replace/misc/1.8/jquery.outer_fn_fix.js
new file mode 100644
index 0000000..1b48b3b
--- /dev/null
+++ b/replace/misc/1.8/jquery.outer_fn_fix.js
@@ -0,0 +1,10 @@
+(function() {
+  var original_outerWidth = jQuery.prototype.outerWidth;
+  var original_outerHeight = jQuery.prototype.outerHeight;
+  jQuery.prototype.outerWidth = function(includeMargin) {
+    return original_outerWidth.call(this, includeMargin || false);
+  };
+  jQuery.prototype.outerHeight = function(includeMargin) {
+    return original_outerHeight.call(this, includeMargin || false);
+  };
+})();
diff --git a/replace/misc/1.8/jquery.outer_fn_fix.min.js b/replace/misc/1.8/jquery.outer_fn_fix.min.js
new file mode 100644
index 0000000..62a0b4a
--- /dev/null
+++ b/replace/misc/1.8/jquery.outer_fn_fix.min.js
@@ -0,0 +1 @@
+(function(p){var o='outer',w='Width',h='Height',a=function(f){var f=f;return function(i){return f.call(this,i||false);};};p[o+w]=a(p[o+w]);p[o+h]=a(p[o+h]);})(jQuery.prototype);
