diff --git a/lib/javascript-static.js b/lib/javascript-static.js
index d5f2499..d964fe90 100644
--- a/lib/javascript-static.js
+++ b/lib/javascript-static.js
@@ -316,6 +316,9 @@ M.util.init_maximised_embed = function(Y, id) {
         return;
     }
 
+    // Can we get the height of the embedded resource (i.e. if it's HTML)?
+    var resourceheight = Y.one('#resourceobject').get('contentDocument').one('body').get('offsetHeight');
+
     var get_htmlelement_size = function(el, prop) {
         if (Y.Lang.isString(el)) {
             el = Y.one('#' + el);
@@ -330,7 +333,19 @@ M.util.init_maximised_embed = function(Y, id) {
     var resize_object = function() {
         obj.setStyle('width', '0px');
         obj.setStyle('height', '0px');
-        var newwidth = get_htmlelement_size('maincontent', 'width') - 35;
+        var newwidth = get_htmlelement_size('maincontent', 'width');
+
+        var headerheight = get_htmlelement_size('page-header', 'height');
+        var footerheight = get_htmlelement_size('page-footer', 'height');
+        var newheight;
+
+        if (resourceheight) {
+            newwidth = newwidth -5;
+            newheight = resourceheight;
+        } else {
+            newwidth = newwidth -35;
+            newheight = parseInt(YAHOO.util.Dom.getViewportHeight()) - footerheight - headerheight - 100;
+        }
 
         if (newwidth > 500) {
             obj.setStyle('width', newwidth  + 'px');
@@ -338,9 +353,6 @@ M.util.init_maximised_embed = function(Y, id) {
             obj.setStyle('width', '500px');
         }
 
-        var headerheight = get_htmlelement_size('page-header', 'height');
-        var footerheight = get_htmlelement_size('page-footer', 'height');
-        var newheight = parseInt(YAHOO.util.Dom.getViewportHeight()) - footerheight - headerheight - 100;
         if (newheight < 400) {
             newheight = 400;
         }
