diff --git a/js/field_slideshow.js b/js/field_slideshow.js
index a8992b01546d1a85a2fa39b10dde3354797750bd..867a610bf8d522d25953e8edf863b9f46fc19032 100644
--- a/js/field_slideshow.js
+++ b/js/field_slideshow.js
@@ -6,8 +6,20 @@
         var settings = Drupal.settings.field_slideshow[i];
         var slideshow = $('.' + i);
 
-        // Add Caption height if exists
-        if (settings.caption != '') slideshow.css("padding-bottom", ($("." + i + " .field-slideshow-caption").outerHeight() + parseInt($("." + i + " .field-slideshow-slide img").css("margin-bottom"))) + "px");
+        // Add padding if needed
+        var padding = [0, 0, 0, 0];
+        var props = ['margin-top', 'margin-right', 'margin-bottom', 'margin-left', 'padding-top', 'padding-right', 'padding-bottom', 'padding-left', 'border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width'];
+        $('.field-slideshow-slide:first,.field-slideshow-slide a:first,.field-slideshow-slide img:first').each(function() {
+          $this = $(this);
+          for (p in props) padding[p%4] += parseInt($this.css(props[p]));
+        });
+        if (settings.caption != '') padding[2] += $("." + i + " .field-slideshow-caption").outerHeight();
+        slideshow.css({
+          'padding-top': padding[0] + 'px',
+          'padding-right': padding[1] + 'px',
+          'padding-bottom': padding[2] + 'px',
+          'padding-left': padding[3] + 'px'
+        });
 
         // Create Pager wrapper
         if (settings.pager != '') slideshow.after("<" + (settings.pager == 'image' ? 'ul' : 'div') + " id='" + i + "-pager' class='field-slideshow-pager'/>");