diff --git a/content/containers/commoncontainer/index.html b/content/containers/commoncontainer/index.html
index af44b39..7330619 100644
--- a/content/containers/commoncontainer/index.html
+++ b/content/containers/commoncontainer/index.html
@@ -21,7 +21,6 @@
 <head>
   <title>OpenSocial Common Container Test Environment</title>
   <!-- My OpenSocial Beginnings -->
-  <link rel="stylesheet" href="../../../container/gadgets.css"/>
   <link rel="stylesheet"
         href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/cupertino/jquery-ui.css"
         type="text/css" media="all"/>
diff --git a/features/src/main/javascript/features/container.site/site_holder.js b/features/src/main/javascript/features/container.site/site_holder.js
index 397a098..bf653bd 100644
--- a/features/src/main/javascript/features/container.site/site_holder.js
+++ b/features/src/main/javascript/features/container.site/site_holder.js
@@ -109,9 +109,11 @@
  * @protected
  */
 osapi.container.SiteHolder.prototype.createIframeHtml = function(url, overrides) {
-   return osapi.container.util.createIframeHtml(
-     this.createIframeAttributeMap(url, overrides)
-   );
+	var undef,
+	    map = this.createIframeAttributeMap(url, overrides);
+	map['onload'] = this.onLoad_ ?
+	        ('window.' + this.onLoad_ + "('" + this.getUrl() + "', '" + this.site_.getId() + "');") : undef;
+   return osapi.container.util.createIframeHtml(map);
 };
 
 /**
@@ -122,8 +124,7 @@
  * @protected
  */
 osapi.container.SiteHolder.prototype.createIframeAttributeMap = function(url, overrides) {
-  var undef,
-      renderParams = this.renderParams_ || {},
+  var renderParams = this.renderParams_ || {},
       params = {
         id: this.iframeId_,
         name: this.iframeId_,
@@ -136,9 +137,7 @@
         hspace: 0,
         'class': renderParams[osapi.container.RenderParam.CLASS],
         height: renderParams[osapi.container.RenderParam.HEIGHT],
-        width: renderParams[osapi.container.RenderParam.WIDTH],
-        onload: this.onLoad_ ?
-                ('window.' + this.onLoad_ + "('" + this.getUrl() + "', '" + this.site_.getId() + "');") : undef
+        width: renderParams[osapi.container.RenderParam.WIDTH]
       };
    if (overrides) {
      for(var i in overrides) {
