diff --git a/.gitignore b/.gitignore
index 4b114324f..48125b238 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
 .sass-cache
 .DS_Store
+css/GridField_print.css
\ No newline at end of file
diff --git a/admin/code/ModelAdmin.php b/admin/code/ModelAdmin.php
index e644b2fb3..2a1d787a0 100644
--- a/admin/code/ModelAdmin.php
+++ b/admin/code/ModelAdmin.php
@@ -115,7 +115,7 @@ abstract class ModelAdmin extends LeftAndMain {
 
 	function getEditForm($id = null, $fields = null) {
 		$list = $this->getList();
-		$exportButton = new GridFieldExportButton();
+		$exportButton = new GridFieldExportButton('before');
 		$exportButton->setExportColumns($this->getExportFields());
 		$listField = GridField::create(
 			$this->modelClass,
@@ -124,6 +124,7 @@ abstract class ModelAdmin extends LeftAndMain {
 			$fieldConfig = GridFieldConfig_RecordEditor::create($this->stat('page_length'))
 				->addComponent($exportButton)
 				->removeComponentsByType('GridFieldFilterHeader')
+				->addComponents(new GridFieldPrintButton('before'))
 		);
 
 		// Validation
diff --git a/admin/css/ie7.css b/admin/css/ie7.css
index ceca283a5..759149480 100644
--- a/admin/css/ie7.css
+++ b/admin/css/ie7.css
@@ -50,7 +50,6 @@ html { overflow: hidden; }
 
 table.ss-gridfield-table tr.title th h2 { float: left; }
 
-table.ss-gridfield-table { table-layout: fixed; }
 table.ss-gridfield-table tr.ss-gridfield-item.odd { background: white; }
 table.ss-gridfield-table tr.ss-gridfield-item.even { background: #F0F4F7; }
 
@@ -59,3 +58,6 @@ table.ss-gridfield-table tr.ss-gridfield-item.even { background: #F0F4F7; }
 .ModelAdmin .cms-content-fields .cms-content-tools .cms-panel-content #Form_ImportForm div.file { margin: 0px; }
 .ModelAdmin .cms-content-fields .cms-content-tools .cms-panel-content #Form_ImportForm div.file input.file { margin-left: -132px; }
 .ModelAdmin .cms-content-fields .cms-content-tools .cms-panel-content #Form_ImportForm div.checkbox { padding: 0px; }
+
+.cms .ss-gridfield table.ss-gridfield-table tbody td.col-listChildrenLink { width: 16px; }
+.cms .ss-gridfield table.ss-gridfield-table tbody td.col-listChildrenLink .list-children-link { background: transparent url(../images/sitetree_ss_default_icons.png) no-repeat 4px -4px; display: block; }
diff --git a/admin/css/ie8.css b/admin/css/ie8.css
index 359237a14..5393cfb0d 100644
--- a/admin/css/ie8.css
+++ b/admin/css/ie8.css
@@ -10,6 +10,8 @@
 
 .cms-content-toolbar { border-bottom: 1px solid #c9cdce; }
 
+.cms-content-tools .cms-panel-content .dropdown select { width: 152px; }
+
 .ss-ui-button.cms-page-add-button.ui-state-hover, .cms .ss-ui-button.cms-page-add-button:hover { background: #80bf40 url("../images/btn-icon/add.png") 0px 0px no-repeat; }
 
 .ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { background-image: none; }
diff --git a/admin/css/screen.css b/admin/css/screen.css
index ffbe3a9a0..e17667f82 100644
--- a/admin/css/screen.css
+++ b/admin/css/screen.css
@@ -35,7 +35,7 @@ If more variables exist in the future, consider creating a variables file.*/
 /** ---------------------------------------------------- Double tone borders  http://daverupert.com/2011/06/two-tone-borders-with-css3/ ----------------------------------------------------- */
 /** ----------------------------- Sprite images ----------------------------- */
 /** Helper SCSS file for generating sprites for the interface. */
-.btn-icon-sprite, .ui-state-default .btn-icon-accept, .ui-state-default .btn-icon-accept_disabled, .ui-state-default .btn-icon-add, .ui-state-default .btn-icon-add_disabled, .ui-state-default .btn-icon-addpage, .ui-state-default .btn-icon-addpage_disabled, .ui-state-default .btn-icon-arrow-circle-135-left, .ui-state-default .btn-icon-back, .ui-state-default .btn-icon-back_disabled, .ui-state-default .btn-icon-chain--arrow, .ui-state-default .btn-icon-chain--exclamation, .ui-state-default .btn-icon-chain--minus, .ui-state-default .btn-icon-chain--pencil, .ui-state-default .btn-icon-chain--plus, .ui-state-default .btn-icon-chain-small, .ui-state-default .btn-icon-chain-unchain, .ui-state-default .btn-icon-chain, .ui-state-default .btn-icon-cross-circle, .ui-state-default .btn-icon-cross-circle_disabled, .ui-state-default .btn-icon-decline, .ui-state-default .btn-icon-decline_disabled, .ui-state-default .btn-icon-download-csv, .ui-state-default .btn-icon-drive-upload, .ui-state-default .btn-icon-drive-upload_disabled, .ui-state-default .btn-icon-magnifier, .ui-state-default .btn-icon-minus-circle, .ui-state-default .btn-icon-minus-circle_disabled, .ui-state-default .btn-icon-navigation, .ui-state-default .btn-icon-navigation_disabled, .ui-state-default .btn-icon-network-cloud, .ui-state-default .btn-icon-network-cloud_disabled, .ui-state-default .btn-icon-pencil, .ui-state-default .btn-icon-pencil_disabled, .ui-state-default .btn-icon-plug-disconnect-prohibition, .ui-state-default .btn-icon-plug-disconnect-prohibition_disabled, .ui-state-default .btn-icon-preview, .ui-state-default .btn-icon-preview_disabled, .ui-state-default .btn-icon-settings, .ui-state-default .btn-icon-settings_disabled, .ui-state-default .btn-icon-unpublish, .ui-state-default .btn-icon-unpublish_disabled { background: url('../images/btn-icon-s41050dc384.png') no-repeat; }
+.btn-icon-sprite, .ui-state-default .btn-icon-accept, .ui-state-default .btn-icon-accept_disabled, .ui-state-default .btn-icon-add, .ui-state-default .btn-icon-add_disabled, .ui-state-default .btn-icon-addpage, .ui-state-default .btn-icon-addpage_disabled, .ui-state-default .btn-icon-arrow-circle-135-left, .ui-state-default .btn-icon-back, .ui-state-default .btn-icon-back_disabled, .ui-state-default .btn-icon-chain--arrow, .ui-state-default .btn-icon-chain--exclamation, .ui-state-default .btn-icon-chain--minus, .ui-state-default .btn-icon-chain--pencil, .ui-state-default .btn-icon-chain--plus, .ui-state-default .btn-icon-chain-small, .ui-state-default .btn-icon-chain-unchain, .ui-state-default .btn-icon-chain, .ui-state-default .btn-icon-cross-circle, .ui-state-default .btn-icon-cross-circle_disabled, .ui-state-default .btn-icon-decline, .ui-state-default .btn-icon-decline_disabled, .ui-state-default .btn-icon-document--pencil, .ui-state-default .btn-icon-download-csv, .ui-state-default .btn-icon-drive-upload, .ui-state-default .btn-icon-drive-upload_disabled, .ui-state-default .btn-icon-grid_print, .ui-state-default .btn-icon-magnifier, .ui-state-default .btn-icon-minus-circle, .ui-state-default .btn-icon-minus-circle_disabled, .ui-state-default .btn-icon-navigation, .ui-state-default .btn-icon-navigation_disabled, .ui-state-default .btn-icon-network-cloud, .ui-state-default .btn-icon-network-cloud_disabled, .ui-state-default .btn-icon-pencil, .ui-state-default .btn-icon-pencil_disabled, .ui-state-default .btn-icon-plug-disconnect-prohibition, .ui-state-default .btn-icon-plug-disconnect-prohibition_disabled, .ui-state-default .btn-icon-preview, .ui-state-default .btn-icon-preview_disabled, .ui-state-default .btn-icon-settings, .ui-state-default .btn-icon-settings_disabled, .ui-state-default .btn-icon-unpublish, .ui-state-default .btn-icon-unpublish_disabled { background: url('../images/btn-icon-s9416553f5b.png') no-repeat; }
 
 .ui-state-default .btn-icon-accept { background-position: 0 0; }
 .ui-state-default .btn-icon-accept_disabled { background-position: 0 -17px; }
@@ -58,26 +58,28 @@ If more variables exist in the future, consider creating a variables file.*/
 .ui-state-default .btn-icon-cross-circle_disabled { background-position: 0 -293px; }
 .ui-state-default .btn-icon-decline { background-position: 0 -309px; }
 .ui-state-default .btn-icon-decline_disabled { background-position: 0 -326px; }
-.ui-state-default .btn-icon-download-csv { background-position: 0 -343px; }
-.ui-state-default .btn-icon-drive-upload { background-position: 0 -361px; }
-.ui-state-default .btn-icon-drive-upload_disabled { background-position: 0 -377px; }
-.ui-state-default .btn-icon-magnifier { background-position: 0 -393px; }
-.ui-state-default .btn-icon-minus-circle { background-position: 0 -409px; }
-.ui-state-default .btn-icon-minus-circle_disabled { background-position: 0 -425px; }
-.ui-state-default .btn-icon-navigation { background-position: 0 -441px; }
-.ui-state-default .btn-icon-navigation_disabled { background-position: 0 -457px; }
-.ui-state-default .btn-icon-network-cloud { background-position: 0 -473px; }
-.ui-state-default .btn-icon-network-cloud_disabled { background-position: 0 -489px; }
-.ui-state-default .btn-icon-pencil { background-position: 0 -505px; }
-.ui-state-default .btn-icon-pencil_disabled { background-position: 0 -521px; }
-.ui-state-default .btn-icon-plug-disconnect-prohibition { background-position: 0 -537px; }
-.ui-state-default .btn-icon-plug-disconnect-prohibition_disabled { background-position: 0 -553px; }
-.ui-state-default .btn-icon-preview { background-position: 0 -569px; }
-.ui-state-default .btn-icon-preview_disabled { background-position: 0 -586px; }
-.ui-state-default .btn-icon-settings { background-position: 0 -603px; }
-.ui-state-default .btn-icon-settings_disabled { background-position: 0 -619px; }
-.ui-state-default .btn-icon-unpublish { background-position: 0 -635px; }
-.ui-state-default .btn-icon-unpublish_disabled { background-position: 0 -653px; }
+.ui-state-default .btn-icon-document--pencil { background-position: 0 -343px; }
+.ui-state-default .btn-icon-download-csv { background-position: 0 -359px; }
+.ui-state-default .btn-icon-drive-upload { background-position: 0 -377px; }
+.ui-state-default .btn-icon-drive-upload_disabled { background-position: 0 -393px; }
+.ui-state-default .btn-icon-grid_print { background-position: 0 -409px; }
+.ui-state-default .btn-icon-magnifier { background-position: 0 -425px; }
+.ui-state-default .btn-icon-minus-circle { background-position: 0 -441px; }
+.ui-state-default .btn-icon-minus-circle_disabled { background-position: 0 -457px; }
+.ui-state-default .btn-icon-navigation { background-position: 0 -473px; }
+.ui-state-default .btn-icon-navigation_disabled { background-position: 0 -489px; }
+.ui-state-default .btn-icon-network-cloud { background-position: 0 -505px; }
+.ui-state-default .btn-icon-network-cloud_disabled { background-position: 0 -521px; }
+.ui-state-default .btn-icon-pencil { background-position: 0 -537px; }
+.ui-state-default .btn-icon-pencil_disabled { background-position: 0 -553px; }
+.ui-state-default .btn-icon-plug-disconnect-prohibition { background-position: 0 -569px; }
+.ui-state-default .btn-icon-plug-disconnect-prohibition_disabled { background-position: 0 -585px; }
+.ui-state-default .btn-icon-preview { background-position: 0 -601px; }
+.ui-state-default .btn-icon-preview_disabled { background-position: 0 -618px; }
+.ui-state-default .btn-icon-settings { background-position: 0 -635px; }
+.ui-state-default .btn-icon-settings_disabled { background-position: 0 -651px; }
+.ui-state-default .btn-icon-unpublish { background-position: 0 -667px; }
+.ui-state-default .btn-icon-unpublish_disabled { background-position: 0 -685px; }
 
 .icon { text-indent: -9999px; border: none; outline: none; }
 .icon.icon-24 { width: 24px; height: 24px; background: url('../images/menu-icons/24x24-s546fcae8fd.png'); }
@@ -247,13 +249,15 @@ body.cms { overflow: hidden; }
 /** -------------------------------------------- Helpers -------------------------------------------- */
 .cms-helper-hide-actions .Actions { display: none; }
 
+.hide { display: none; }
+
 /** -------------------------------------------- Panels Styles -------------------------------------------- */
 .cms-container { height: 100%; background: #f0f3f4 url(../images/textures/bg_cms_main_content.png) repeat top left; }
 
 .cms-preview, .cms-menu, .cms-content, .cms-content-header, .cms-content-tools, .cms-content-fields, .cms-edit-form, .cms-preview, .cms-preview iframe, .cms-preview-controls { display: -moz-inline-box; -moz-box-orient: vertical; display: inline-block; vertical-align: middle; *vertical-align: auto; }
 .cms-preview, .cms-menu, .cms-content, .cms-content-header, .cms-content-tools, .cms-content-fields, .cms-edit-form, .cms-preview, .cms-preview iframe, .cms-preview-controls { *display: inline; }
 
-.cms-content-header { padding: 0px 8px 8px; height: 32px; z-index: 60; background-image: url(../images/textures/cms_content_header.png); background-repeat: repeat; }
+.cms-content-header { padding: 0px 8px 8px; height: 32px; z-index: 60; -moz-box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px inset; -webkit-box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px inset; -o-box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px inset; box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px inset; background-image: url(../images/textures/cms_content_header.png); background-repeat: repeat; }
 .cms-content-header a { color: #1556b2; }
 .cms-content-header .backlink { float: left; margin-top: 7px; }
 .cms-content-header .backlink span.btn-icon-back { height: 16px; }
@@ -272,7 +276,7 @@ body.cms { overflow: hidden; }
 /** -------------------------------------------- Tabs -------------------------------------------- */
 .cms-content-header .ui-tabs-nav li, .cms-dialog .ui-tabs-nav li { margin: 0; }
 .cms-content-header .ui-tabs-nav li a, .cms-dialog .ui-tabs-nav li a { font-weight: bold; line-height: 16px; padding: 12px 20px 11px; }
-.cms-content-header .ui-tabs-nav .ui-state-default, .cms-content-header .ui-tabs-nav .ui-widget-content .ui-state-default, .cms-content-header .ui-tabs-nav .ui-widget-header .ui-state-default, .cms-dialog .ui-tabs-nav .ui-state-default, .cms-dialog .ui-tabs-nav .ui-widget-content .ui-state-default, .cms-dialog .ui-tabs-nav .ui-widget-header .ui-state-default { background-color: #b0bec7; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2IwYmVjNyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzhjYTFhZSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b0bec7), color-stop(100%, #8ca1ae)); background-image: -webkit-linear-gradient(#b0bec7, #8ca1ae); background-image: -moz-linear-gradient(#b0bec7, #8ca1ae); background-image: -o-linear-gradient(#b0bec7, #8ca1ae); background-image: -ms-linear-gradient(#b0bec7, #8ca1ae); background-image: linear-gradient(#b0bec7, #8ca1ae); border-right-color: #a6a6a6; border-left-color: #d9d9d9; border-bottom: none; text-shadow: white 0 1px 0; }
+.cms-content-header .ui-tabs-nav .ui-state-default, .cms-content-header .ui-tabs-nav .ui-widget-content .ui-state-default, .cms-content-header .ui-tabs-nav .ui-widget-header .ui-state-default, .cms-dialog .ui-tabs-nav .ui-state-default, .cms-dialog .ui-tabs-nav .ui-widget-content .ui-state-default, .cms-dialog .ui-tabs-nav .ui-widget-header .ui-state-default { background-color: #b0bec7; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2IwYmVjNyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzhjYTFhZSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b0bec7), color-stop(100%, #8ca1ae)); background-image: -webkit-linear-gradient(#b0bec7, #8ca1ae); background-image: -moz-linear-gradient(#b0bec7, #8ca1ae); background-image: -o-linear-gradient(#b0bec7, #8ca1ae); background-image: -ms-linear-gradient(#b0bec7, #8ca1ae); background-image: linear-gradient(#b0bec7, #8ca1ae); border-right-color: #a6a6a6; border-left-color: #d9d9d9; border-bottom: none; text-shadow: #e6e6e6 0 1px 0; }
 .cms-content-header .ui-tabs-nav .ui-state-active, .cms-content-header .ui-tabs-nav .ui-widget-content .ui-state-active, .cms-content-header .ui-tabs-nav .ui-widget-header .ui-state-active, .cms-dialog .ui-tabs-nav .ui-state-active, .cms-dialog .ui-tabs-nav .ui-widget-content .ui-state-active, .cms-dialog .ui-tabs-nav .ui-widget-header .ui-state-active { background: #eceff1; border-right-color: #a6a6a6; border-left-color: #a6a6a6; margin-right: -1px; margin-left: -1px; z-index: 2; }
 .cms-content-header .ui-tabs-nav .ui-state-active a, .cms-content-header .ui-tabs-nav .ui-widget-content .ui-state-active a, .cms-content-header .ui-tabs-nav .ui-widget-header .ui-state-active a, .cms-dialog .ui-tabs-nav .ui-state-active a, .cms-dialog .ui-tabs-nav .ui-widget-content .ui-state-active a, .cms-dialog .ui-tabs-nav .ui-widget-header .ui-state-active a { border-bottom: none; }
 
@@ -280,7 +284,7 @@ body.cms { overflow: hidden; }
 .CMSPagesController .cms-content-header-tabs .ui-tabs-nav li a.content-treeview { background: url(../images/content-header-tabs-sprite.png) no-repeat 2px 0px; }
 .CMSPagesController .cms-content-header-tabs .ui-tabs-nav li a.content-galleryview { background: url(../images/content-header-tabs-sprite.png) no-repeat -87px 0px; }
 .CMSPagesController .cms-content-header-tabs .ui-tabs-nav li a.content-listview { background: url(../images/content-header-tabs-sprite.png) no-repeat -38px 0px; }
-.CMSPagesController .cms-content-header-tabs .ui-tabs-nav .ui-state-active, .CMSPagesController .cms-content-header-tabs .ui-tabs-nav .ui-widget-content .ui-state-active, .CMSPagesController .cms-content-header-tabs .ui-tabs-nav .ui-widget-header .ui-state-active { border-top: none; }
+.CMSPagesController .cms-content-header-tabs .ui-tabs-nav .ui-state-active, .CMSPagesController .cms-content-header-tabs .ui-tabs-nav .ui-widget-content .ui-state-active, .CMSPagesController .cms-content-header-tabs .ui-tabs-nav .ui-widget-header .ui-state-active { border-top: none; padding-bottom: 1px; }
 .CMSPagesController .cms-content-header-tabs .ui-tabs-nav .ui-state-active a.content-treeview, .CMSPagesController .cms-content-header-tabs .ui-tabs-nav .ui-widget-content .ui-state-active a.content-treeview, .CMSPagesController .cms-content-header-tabs .ui-tabs-nav .ui-widget-header .ui-state-active a.content-treeview { background: url(../images/content-header-tabs-sprite.png) no-repeat 2px -40px; }
 .CMSPagesController .cms-content-header-tabs .ui-tabs-nav .ui-state-active a.content-galleryview, .CMSPagesController .cms-content-header-tabs .ui-tabs-nav .ui-widget-content .ui-state-active a.content-galleryview, .CMSPagesController .cms-content-header-tabs .ui-tabs-nav .ui-widget-header .ui-state-active a.content-galleryview { background: url(../images/content-header-tabs-sprite.png) no-repeat -87px -40px; }
 .CMSPagesController .cms-content-header-tabs .ui-tabs-nav .ui-state-active a.content-listview, .CMSPagesController .cms-content-header-tabs .ui-tabs-nav .ui-widget-content .ui-state-active a.content-listview, .CMSPagesController .cms-content-header-tabs .ui-tabs-nav .ui-widget-header .ui-state-active a.content-listview { background: url(../images/content-header-tabs-sprite.png) no-repeat -38px -40px; }
@@ -349,13 +353,7 @@ body.cms { overflow: hidden; }
 .cms-content-tools { background-color: #dde3e7; width: 192px; border-right: 1px solid #bfcad2; overflow-y: auto; overflow-x: hidden; z-index: 70; -moz-box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px; -webkit-box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px; -o-box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px; box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px; float: left; position: relative; }
 .cms-content-tools .cms-panel-header { clear: both; margin: 0 0 7px; line-height: 24px; border-bottom: 1px solid rgba(201, 205, 206, 0.8); -webkit-box-shadow: 0 1px 0 rgba(228, 230, 230, 0.8); -moz-box-shadow: 0 1px 0 rgba(228, 230, 230, 0.8); -o-box-shadow: 0 1px 0 rgba(228, 230, 230, 0.8); box-shadow: 0 1px 0 rgba(228, 230, 230, 0.8); }
 .cms-content-tools .cms-panel-content { width: 176px; padding: 8px 8px; overflow: auto; height: 100%; }
-.cms-content-tools .cms-panel-content #LastEditedFrom { -moz-box-shadow: none; -webkit-box-shadow: none; -o-box-shadow: none; box-shadow: none; }
-.cms-content-tools .cms-panel-content #LastEditedFrom input { width: 160px; }
-.cms-content-tools .cms-panel-content #LastEditedFrom input.hasDatepicker { max-width: 160px; }
-.cms-content-tools .cms-panel-content #LastEditedTo { -moz-box-shadow: none; -webkit-box-shadow: none; -o-box-shadow: none; box-shadow: none; }
-.cms-content-tools .cms-panel-content #LastEditedTo input { width: 160px; }
-.cms-content-tools .cms-panel-content #LastEditedTo input.hasDatepicker { max-width: 160px; }
-.cms-content-tools .cms-panel-content .Actions .ss-ui-action-constructive { margin-right: 5px; }
+.cms-content-tools .cms-panel-content .dropdown select { width: 160px; }
 .cms-content-tools .cms-content-header { background-color: #748d9d; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2IwYmVjNyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzc0OGQ5ZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b0bec7), color-stop(100%, #748d9d)); background-image: -webkit-linear-gradient(#b0bec7, #748d9d); background-image: -moz-linear-gradient(#b0bec7, #748d9d); background-image: -o-linear-gradient(#b0bec7, #748d9d); background-image: -ms-linear-gradient(#b0bec7, #748d9d); background-image: linear-gradient(#b0bec7, #748d9d); }
 .cms-content-tools .cms-content-header h2 { text-shadow: #5c7382 -1px -1px 0; width: 176px; color: white; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; o-text-overflow: ellipsis; }
 .cms-content-tools h3, .cms-content-tools h4, .cms-content-tools h5 { font-weight: bold; line-height: 16px; }
@@ -406,9 +404,12 @@ body.cms { overflow: hidden; }
 
 /** -------------------------------------------- Member Profile -------------------------------------------- */
 form.member-profile-form { padding: 0 16px 0 0; }
+form.member-profile-form .ui-tabs-nav { margin-right: 40px !important; float: right; }
+form.member-profile-form .ui-tabs-nav .ui-state-active, form.member-profile-form .ui-tabs-nav .ui-widget-content .ui-state-active, form.member-profile-form .ui-tabs-nav .ui-widget-header .ui-state-active { padding-bottom: 1px; margin-bottom: -1px; }
 form.member-profile-form .ui-tabs-nav .ui-state-default, form.member-profile-form .ui-tabs-nav .ui-widget-content .ui-state-default, form.member-profile-form .ui-tabs-nav .ui-widget-header .ui-state-default { border-top: none; }
-form.member-profile-form #Root_Permissions { clear: both; padding: 16px; }
-form.member-profile-form #Root_Main { clear: both; padding: 16px; }
+form.member-profile-form .ui-tabs-nav .ui-state-default a, form.member-profile-form .ui-tabs-nav .ui-widget-content .ui-state-default a, form.member-profile-form .ui-tabs-nav .ui-widget-header .ui-state-default a { padding: 12px 20px 11px; }
+form.member-profile-form #Root_Permissions { clear: both; border-top: 1px solid #a6a6a6; }
+form.member-profile-form #Root_Main { clear: both; border-top: 1px solid #a6a6a6; padding-top: 16px; }
 form.member-profile-form #Root_Main .cms-help-toggle { text-indent: -9999em; display: inline-block; width: 20px; background: url(../images/question.png) no-repeat 0px 0px; }
 form.member-profile-form #FavouritePageID { margin-top: 8px; }
 form.member-profile-form #CsvFile .middleColumn { background: none !important; }
@@ -473,34 +474,41 @@ form.member-profile-form .ui-tabs-nav .ui-corner-all, form.member-profile-form .
 .cms .ui-dialog .ss-ui-dialog.ui-dialog-content { padding-top: 0px; }
 
 .ui-dialog { background: url("../images/textures/bg_cms_main_content.png") repeat left top #f0f3f4; border: 3px solid #000 !important; border-radius: 8px; overflow: visible; padding: 0; }
-.ui-dialog .ui-dialog-titlebar.ui-widget-header { font-size: 14px; background-color: #92a5b2; padding: 4px 4px 4px 16px; border-bottom: 2px solid #8399a7; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2NlZDdkYyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzkyYTViMiIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ced7dc), color-stop(100%, #92a5b2)); background-image: -webkit-linear-gradient(#ced7dc, #92a5b2); background-image: -moz-linear-gradient(#ced7dc, #92a5b2); background-image: -o-linear-gradient(#ced7dc, #92a5b2); background-image: -ms-linear-gradient(#ced7dc, #92a5b2); background-image: linear-gradient(#ced7dc, #92a5b2); }
+.ui-dialog .ui-dialog-titlebar.ui-widget-header { font-size: 14px; padding: 0; border: none; background-color: transparent; background-image: url(../images/textures/cms_content_header.png); background-repeat: repeat; -moz-box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px inset; -webkit-box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px inset; -o-box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px inset; box-shadow: rgba(107, 120, 123, 0.5) 0 0 4px inset; }
+.ui-dialog .ui-dialog-titlebar.ui-widget-header .ui-dialog-title { position: absolute; }
+.ui-dialog .cms-dialog-content { background: url("../images/textures/bg_cms_main_content.png") repeat left top #f0f3f4; padding-bottom: 8px; padding-top: 0px; }
+.ui-dialog .cms-dialog-content .Actions { overflow: auto; margin: 8px 0; padding-bottom: 8px; float: right; }
+.ui-dialog .cms-dialog-content .ss-tabset { -moz-border-radius: none; -webkit-border-radius: none; -o-border-radius: none; -ms-border-radius: none; -khtml-border-radius: none; border-radius: none; }
+.ui-dialog .cms-dialog-content .ss-tabset .tab { background: none; overflow-y: auto; }
+.ui-dialog .cms-dialog-content .ss-tabset.ui-tabs { background: none; }
+.ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav { border: none; padding: 0 40px 0 0; float: right; }
+.ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav li { margin: 0; font-weight: bold; line-height: 16px; padding: 12px 12px 10px; border-bottom: 2px solid #B3B3B3; }
+.ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: -1px; padding-bottom: 11px; }
+.ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav li:first-child { margin-left: 15px; }
+.ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-state-focus a { outline: none; }
+.ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-state-default, .ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-widget-content .ui-state-default, .ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-widget-header .ui-state-default { background-color: #b0bec7; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2IwYmVjNyIvPjxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzhjYTFhZSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIGZpbGw9InVybCgjZ3JhZCkiIC8+PC9zdmc+IA=='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b0bec7), color-stop(100%, #8ca1ae)); background-image: -webkit-linear-gradient(#b0bec7, #8ca1ae); background-image: -moz-linear-gradient(#b0bec7, #8ca1ae); background-image: -o-linear-gradient(#b0bec7, #8ca1ae); background-image: -ms-linear-gradient(#b0bec7, #8ca1ae); background-image: linear-gradient(#b0bec7, #8ca1ae); border-right-color: #a6a6a6; border-left-color: #d9d9d9; border-bottom: none; border-top: none; text-shadow: white 0 1px 0; }
+.ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-state-active, .ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-widget-content .ui-state-active, .ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-widget-header .ui-state-active { background: #eceff1; border-right-color: #a6a6a6; border-left-color: #a6a6a6; margin-right: -1px; margin-left: -3px; z-index: 2; }
+.ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-state-active a, .ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-widget-content .ui-state-active a, .ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-widget-header .ui-state-active a { border-bottom: none; border-top: none; }
+.ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-corner-all, .ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-corner-top, .ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-corner-right, .ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-corner-tr { border-radius: 0; }
+.ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-corner-all, .ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-corner-top, .ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-corner-left, .ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav .ui-corner-tl { border-radius: 0; }
+.ui-dialog .cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-panel { background: url("../images/textures/bg_cms_main_content.png") repeat left top #f0f3f4; overflow-x: hidden; clear: both; border-top: 1px solid #a6a6a6; }
+.ui-dialog .cms-dialog-content .clear { clear: both; }
 .ui-dialog.loading { background-image: url(../images/spinner.gif); background-position: 50% 50%; background-repeat: no-repeat; }
 
 body.cms-dialog { overflow: auto; background: url("../images/textures/bg_cms_main_content.png") repeat left top #f0f3f4; }
 
-.cms-dialog-content { background: url("../images/textures/bg_cms_main_content.png") repeat left top #f0f3f4; padding-bottom: 8px; }
-.cms-dialog-content .Actions { overflow: auto; margin: 8px 0; padding-bottom: 8px; float: right; }
-.cms-dialog-content .ss-tabset { z-index: 60; -moz-border-radius: none; -webkit-border-radius: none; -o-border-radius: none; -ms-border-radius: none; -khtml-border-radius: none; border-radius: none; }
-.cms-dialog-content .ss-tabset .tab { background: none; overflow-y: auto; }
-.cms-dialog-content .ss-tabset.ui-tabs { background: none; }
-.cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav { border: none; padding: 0 40px 0 0; float: right; }
-.cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav li { font-weight: bold; line-height: 16px; padding: 11px 12px 9px; border-bottom: 2px solid #B3B3B3; }
-.cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: -1px; }
-.cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-nav li:first-child { margin-left: 15px; }
-.cms-dialog-content .ss-tabset.ui-tabs .ui-tabs-panel { border: 1px solid #AAAAAA; background: url("../images/textures/bg_cms_main_content.png") repeat left top #f0f3f4; }
-.cms-dialog-content .clear { clear: both; }
-
 /** -------------------------------------------- "Insert X" forms -------------------------------------------- */
 .htmleditorfield-linkform .step2 { margin-bottom: 16px; }
 
 .htmleditorfield-mediaform .ss-gridfield tbody td:first-child img { max-height: 30px; }
+.htmleditorfield-mediaform .ss-uploadfield-editandorganize { display: none; }
 .htmleditorfield-mediaform .ss-htmleditorfield-file { border: 1px solid #b3b3b3; -moz-border-radius: 5px; -webkit-border-radius: 5px; -o-border-radius: 5px; -ms-border-radius: 5px; -khtml-border-radius: 5px; border-radius: 5px; -moz-background-clip: padding; -webkit-background-clip: padding; -o-background-clip: padding-box; -ms-background-clip: padding-box; -khtml-background-clip: padding-box; background-clip: padding-box; background: #E2E2E2; margin-bottom: 16px; }
 .htmleditorfield-mediaform .ss-htmleditorfield-file.loading { width: 100%; height: 100px; background-image: url(../images/spinner.gif); background-position: 50% 50%; background-repeat: no-repeat; }
 .htmleditorfield-mediaform .ss-htmleditorfield-file .overview { background-color: #5db4df; background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4gPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJncmFkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjUwJSIgeTE9IjAlIiB4Mj0iNTAlIiB5Mj0iMTAwJSI+PHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iIzVkYjRkZiIvPjxzdG9wIG9mZnNldD0iOCUiIHN0b3AtY29sb3I9IiM1ZGIxZGQiLz48c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iIzQzOWJjYiIvPjxzdG9wIG9mZnNldD0iNTQlIiBzdG9wLWNvbG9yPSIjM2Y5OWNkIi8+PHN0b3Agb2Zmc2V0PSI5NiUiIHN0b3AtY29sb3I9IiMyMDdkYjYiLz48c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiMxZTdjYmEiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmaWxsPSJ1cmwoI2dyYWQpIiAvPjwvc3ZnPiA='); background-size: 100%; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #5db4df), color-stop(8%, #5db1dd), color-stop(50%, #439bcb), color-stop(54%, #3f99cd), color-stop(96%, #207db6), color-stop(100%, #1e7cba)); background-image: -webkit-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); background-image: -moz-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); background-image: -o-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); background-image: -ms-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); background-image: linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); }
 .htmleditorfield-mediaform .ss-htmleditorfield-file .overview .thumbnail { display: inline-block; vertical-align: middle; padding: 4px; }
 .htmleditorfield-mediaform .ss-htmleditorfield-file .overview .thumbnail img { max-height: 24px; }
 .htmleditorfield-mediaform .ss-htmleditorfield-file .overview .title { display: inline-block; vertical-align: middle; background: #fff; border: 1px solid #b3b3b3; -moz-border-radius: 5px; -webkit-border-radius: 5px; -o-border-radius: 5px; -ms-border-radius: 5px; -khtml-border-radius: 5px; border-radius: 5px; margin-left: 16px; padding: 4px; }
-.htmleditorfield-mediaform .ss-htmleditorfield-file .overview .action-delete { display: inline-block; }
+.htmleditorfield-mediaform .ss-htmleditorfield-file .overview .action-delete { float: right; padding: 8px; background: none; border: none; }
 .htmleditorfield-mediaform .ss-htmleditorfield-file .details { padding: 16px; }
 
 /** -------------------------------------------- Search forms (used in AssetAdmin, ModelAdmin, etc) -------------------------------------------- */
@@ -711,7 +719,7 @@ li.class-ErrorPage > a .jstree-pageicon { background-position: 0 -112px; }
 .cms-menu-list.collapsed li > li { display: none; }
 
 .ModelAdmin .cms-content-fields { overflow: hidden; }
-.ModelAdmin .cms-content-fields .cms-edit-form { overflow-y: auto; }
+.ModelAdmin .cms-content-fields .cms-edit-form { overflow-y: scroll; overflow-x: hidden; }
 .ModelAdmin .cms-content-fields .cms-content-tools .cms-panel-content .cms-search-form .resetformaction { margin-right: 0px; }
 .ModelAdmin .cms-content-fields .cms-content-tools .cms-panel-content #Form_ImportForm { overflow: hidden; }
 
diff --git a/admin/images/btn-icon-s9416553f5b.png b/admin/images/btn-icon-s9416553f5b.png
new file mode 100644
index 000000000..c9a18eeef
Binary files /dev/null and b/admin/images/btn-icon-s9416553f5b.png differ
diff --git a/admin/images/btn-icon/grid_print.png b/admin/images/btn-icon/grid_print.png
new file mode 100755
index 000000000..1b15e6384
Binary files /dev/null and b/admin/images/btn-icon/grid_print.png differ
diff --git a/admin/javascript/LeftAndMain.js b/admin/javascript/LeftAndMain.js
index 1196371e7..bd9b950b8 100644
--- a/admin/javascript/LeftAndMain.js
+++ b/admin/javascript/LeftAndMain.js
@@ -332,11 +332,11 @@ jQuery.noConflict();
 		 * "opt in" to panel loading, while by default links still exhibit their default behaviour.
 		 * Same goes for breadcrumbs in the CMS.
 		 */
-		$('.cms .cms-panel-link, .cms a.crumb').entwine({
+		$('.cms .cms-panel-link').entwine({
 			onclick: function(e) {
 				var href = this.attr('href'), url = href ? href : this.data('href'),
 					data = (this.data('targetPanel')) ? {selector: this.data('targetPanel')} : null;
-				
+
 				$('.cms-container').loadPanel(url, null, data);
 				e.preventDefault();
 			}
@@ -401,18 +401,19 @@ jQuery.noConflict();
 				this._super();
 
 				var self = this, id = 'ss-ui-dialog-' + this.getUUID();
-
 				var dialog = $('#' + id);
 				if(!dialog.length) {
 					dialog = $('<div class="ss-ui-dialog" id="' + id + '" />');
 					$('body').append(dialog);
 				}
-			
-				dialog.ssdialog({iframeUrl: this.attr('href'), autoOpen: true});
+				
+				var extraClass = this.data('popupclass')?this.data('popupclass'):'';
+				
+				dialog.ssdialog({iframeUrl: this.attr('href'), autoOpen: true, dialogExtraClass: extraClass});
 				return false;
 			}
 		});
-
+		
 		/**
 		 * Add styling to all contained buttons, and create buttonsets if required.
 		 */
diff --git a/admin/javascript/ssui.core.js b/admin/javascript/ssui.core.js
index 281d439f2..b071f6e74 100644
--- a/admin/javascript/ssui.core.js
+++ b/admin/javascript/ssui.core.js
@@ -55,6 +55,7 @@
 			// Custom properties
 			iframeUrl: '',
 			reloadOnOpen: true,
+			dialogExtraClass: '',
 
 			// Defaults
 			width: '80%',
@@ -78,6 +79,8 @@
 				self._resizeIframe();
 				self.uiDialog.removeClass('loading');
 			}).hide();
+			
+			if(this.options.dialogExtraClass) this.uiDialog.addClass(this.options.dialogExtraClass);
 			this.element.append(iframe);
 
 			// Let the iframe handle its scrolling
diff --git a/admin/scss/_ModelAdmin.scss b/admin/scss/_ModelAdmin.scss
index 5f029e4c0..950114358 100644
--- a/admin/scss/_ModelAdmin.scss
+++ b/admin/scss/_ModelAdmin.scss
@@ -1,7 +1,8 @@
 .ModelAdmin .cms-content-fields {
 	overflow:hidden; //removes scrolling from filter panel
 	.cms-edit-form {
-		overflow-y:auto; //adds scrolling only to the datagrid 
+		overflow-y:scroll; //adds scrolling only to the datagrid 
+		overflow-x:hidden;
 	}
 	.cms-content-tools .cms-panel-content {
 		.cms-search-form {
diff --git a/admin/scss/_style.scss b/admin/scss/_style.scss
index d6eb650ee..9d0ec4509 100644
--- a/admin/scss/_style.scss
+++ b/admin/scss/_style.scss
@@ -60,6 +60,10 @@ body.cms {
 	}
 }
 
+.hide {
+	display: none;
+}
+
 /** --------------------------------------------
  * Panels Styles
  * -------------------------------------------- */
@@ -86,7 +90,7 @@ body.cms {
 	padding: ($grid-y - 8) $grid-x $grid-y;	
 	height: $grid-y * 4;
 	z-index: 60;
-
+	@include box-shadow($color-shadow-dark 0 0 ($grid-x / 2) inset);
 	background: {
 		image:url(../images/textures/cms_content_header.png);
 		repeat:repeat;
@@ -206,7 +210,7 @@ body.cms {
 			bottom:none;
 		}
 
-		text-shadow: lighten($color-tab, 60%) 0 1px 0;
+		text-shadow: lighten($color-tab, 5%) 0 1px 0;
 	}
 	
 	.ui-state-active, 
@@ -255,6 +259,7 @@ body.cms {
 				border: {
 					top:none;
 				}
+				padding-bottom:1px;
 		
 				a {
 					&.content-treeview {
@@ -598,10 +603,13 @@ body.cms {
 	}
 	
 	.cms-panel-content {
-		width: ($grid-x * 22);
+		width: $grid-x * 22;
 		padding: $grid-y $grid-x;
 		overflow: auto;
 		height:100%;
+		.dropdown select {
+			width:$grid-x * 20;
+		}
 		#LastEditedFrom {
 			@include box-shadow(none);
 			input {
@@ -865,23 +873,35 @@ body.cms {
 form.member-profile-form {
 	padding: 0 $grid-x*2 0 0;
 	.ui-tabs-nav {
+		margin-right:40px !important; //adds a 40px gap to the right of the tabs to match designs on main CMS
+		float:right;
+		.ui-state-active, 
+		.ui-widget-content .ui-state-active, 
+		.ui-widget-header .ui-state-active {
+			padding-bottom: 1px;
+			margin-bottom:-1px;
+		}
 		.ui-state-default,
 		.ui-widget-content .ui-state-default,
 		.ui-widget-header .ui-state-default {
 			border: {
 				top:none;
 			}
+			a {
+				padding:12px 20px 11px;
+			}
 		}
 	}
 
 	#Root_Permissions {
 		clear:both;
-		padding: $grid-x*2;
+		border-top: 1px solid darken($color-tab, 20%);
 	}
 
 	#Root_Main {
 		clear:both;
-		padding: $grid-x*2;
+		border-top: 1px solid darken($color-tab, 20%);
+		padding-top:$grid-y*2;
 		.cms-help-toggle {
 			text-indent: -9999em;
 			display: inline-block;
@@ -1190,15 +1210,131 @@ form.member-profile-form {
 	border-radius: $grid-y;
   overflow: visible;
   padding: 0;
-
+ 
   // Titlebar for pop-up dialog.
 	.ui-dialog-titlebar.ui-widget-header {
-	  font-size: $font-base-size+2;
-		background-color: #92a5b2;
-		padding: $grid-y/2 $grid-x/2 $grid-y/2 $grid-x*2;
-		border-bottom: 2px solid #8399a7;
+	  	font-size: $font-base-size+2;
+		padding: 0;
+		border:none;
+		background: {
+			color:transparent;
+			image:url(../images/textures/cms_content_header.png);
+			repeat:repeat;	
+		}
+		@include box-shadow($color-shadow-dark 0 0 ($grid-x / 2) inset);
+		.ui-dialog-title {
+			position:absolute;
+		}
+	}
 
-		@include background-image(linear-gradient(#ced7dc, #92a5b2));
+	.cms-dialog-content {
+		background: url("../images/textures/bg_cms_main_content.png") repeat left top #F0F3F4;
+		padding-bottom: $grid-y;
+		padding-top:0px;
+
+		.Actions {
+			overflow: auto;
+			margin: $grid-y 0;
+			padding-bottom: $grid-y;
+			float: right;
+		}
+
+		.ss-tabset {	
+			@include border-radius(none);
+
+			.tab {
+				background: none;
+				overflow-y: auto;
+			}
+
+			&.ui-tabs {
+				background: none;
+
+				.ui-tabs-nav {
+					border: none;
+					padding: 0 $grid-x*5 0 0; //allows for 40px gap to the right of tabs to match the tabs on main CMS
+					float:right;
+
+					li {	
+						margin:0;
+						&.ui-tabs-selected {
+							margin-bottom: -1px;
+							padding-bottom:11px;
+						}
+
+						&:first-child {
+							margin-left: 15px;
+						}
+						font-weight: bold;
+						line-height: 16px;
+						padding: 12px 12px 10px;
+						border-bottom: 2px solid #B3B3B3;
+					}
+
+					.ui-state-focus a {
+						outline:none;
+					}
+
+					.ui-state-default, 
+					.ui-widget-content .ui-state-default, 
+					.ui-widget-header .ui-state-default {
+						background-color: $color-base;
+						@include background-image(
+							linear-gradient($color-base, darken($color-base, 12%))
+							);
+						
+						border: {
+							right-color: darken($color-tab, 20%);
+							left-color: $color-tab;
+							bottom:none;
+							top:none;
+						}
+
+						text-shadow: lighten($color-tab, 60%) 0 1px 0;
+					}
+					
+					.ui-state-active, 
+					.ui-widget-content .ui-state-active, 
+					.ui-widget-header .ui-state-active {
+						background: $color-widget-bg;
+						border: {
+							right-color: darken($color-tab, 20%);
+							left-color: darken($color-tab, 20%);
+						}
+						margin-right:-1px;
+						margin-left:-3px;
+						z-index:2;
+						
+						a {
+							border: {
+								bottom:none;
+								top:none;
+							}
+
+						}
+					}
+					.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr {
+					border-radius:0;
+					}
+
+					.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl {
+						border-radius:0;
+					}
+				}
+				
+
+				.ui-tabs-panel {
+					background: url("../images/textures/bg_cms_main_content.png") repeat left top #F0F3F4;
+					overflow-x:hidden;
+					clear:both;
+					border-top: 1px solid darken($color-tab, 20%);
+				}
+			}
+		}
+		.clear {
+			clear: both;
+		}
+		
 	}
 
 	&.loading {
@@ -1213,61 +1349,6 @@ body.cms-dialog {
 	background: url("../images/textures/bg_cms_main_content.png") repeat left top #F0F3F4;
 }
 
-.cms-dialog-content {
-	background: url("../images/textures/bg_cms_main_content.png") repeat left top #F0F3F4;
-	padding-bottom: $grid-y;
-
-	.Actions {
-		overflow: auto;
-		margin: $grid-y 0;
-		padding-bottom: $grid-y;
-		float: right;
-	}
-
-	.ss-tabset {	
-		z-index: 60;
-		@include border-radius(none);
-
-		.tab {
-			background: none;
-			overflow-y: auto;
-		}
-
-		&.ui-tabs {
-			background: none;
-
-			.ui-tabs-nav {
-				border: none;
-				padding: 0 $grid-x*5 0 0; //allows for 40px gap to the right of tabs to match the tabs on main CMS
-				float: right;
-
-				li {	
-					&.ui-tabs-selected {
-						margin-bottom: -1px;
-					}
-
-					&:first-child {
-						margin-left: 15px;
-					}
-					font-weight: bold;
-					line-height: 16px;
-					padding: 11px 12px 9px;
-					border-bottom: 2px solid #B3B3B3;
-				}
-			}
-
-			.ui-tabs-panel {
-				border: 1px solid #AAAAAA;
-				background: url("../images/textures/bg_cms_main_content.png") repeat left top #F0F3F4;
-			}
-		}
-	}
-	.clear {
-		clear: both;
-	}
-	
-}
-
 /** --------------------------------------------
  * "Insert X" forms
  * -------------------------------------------- */
@@ -1285,6 +1366,10 @@ body.cms-dialog {
 		}
 	}
 
+	.ss-uploadfield-editandorganize {
+		display: none;
+	}
+
 	// TODO Consolidate with .assetuploadfield and .ss-uploadfield styles
 	.ss-htmleditorfield-file {
 		border: 1px solid lighten($color-medium-separator, 20%);
@@ -1326,7 +1411,10 @@ body.cms-dialog {
 			}
 
 			.action-delete {
-				display: inline-block;
+				float:right;
+				padding:$grid-x;
+				background:none;
+				border:none;
 			}
 		}
 
diff --git a/admin/scss/ie7.scss b/admin/scss/ie7.scss
index 375db128e..1790a45ed 100644
--- a/admin/scss/ie7.scss
+++ b/admin/scss/ie7.scss
@@ -183,7 +183,6 @@ table.ss-gridfield-table tr.title th h2 {
 //fix for alternate colors on rows in datagrid
 
 table.ss-gridfield-table {
-	table-layout:fixed; //fix for uneven column widths and hidden filter buttons
 	tr {
 		&.ss-gridfield-item.odd {
 			background: white;
@@ -213,4 +212,17 @@ table.ss-gridfield-table {
 			padding:0px; //stops clear database text from overflowing onto two lines.
 		}
 	}
-}
\ No newline at end of file
+}
+
+//fix for view children arrow in pages list view 
+.cms .ss-gridfield table.ss-gridfield-table tbody {
+	td {
+		&.col-listChildrenLink {
+			width:16px;
+			.list-children-link {
+				background: transparent url(../images/sitetree_ss_default_icons.png) no-repeat 4px -4px;
+				display:block;
+			}
+		}
+	}
+}				
diff --git a/admin/scss/ie8.scss b/admin/scss/ie8.scss
index 48d87b20a..d3f344d78 100644
--- a/admin/scss/ie8.scss
+++ b/admin/scss/ie8.scss
@@ -31,6 +31,11 @@
 	border-bottom:1px solid rgb(201, 205, 206);
 }
 
+//fix for width of dropdowns in filter panel
+.cms-content-tools .cms-panel-content .dropdown select {
+			width:152px;
+}
+
 //fix for the button icon shifting on hover
 .ss-ui-button.cms-page-add-button.ui-state-hover, .cms .ss-ui-button.cms-page-add-button:hover { 
 	background: #80bf40 url('../images/btn-icon/add.png') 0px 0px no-repeat; 
diff --git a/admin/templates/CMSBreadcrumbs.ss b/admin/templates/CMSBreadcrumbs.ss
index 78c7de5ca..64855fe2a 100644
--- a/admin/templates/CMSBreadcrumbs.ss
+++ b/admin/templates/CMSBreadcrumbs.ss
@@ -1,7 +1,7 @@
 <% control Breadcrumbs %>
 	<% if Last %>
-		<span class="crumb">$Title.XML</span>
+		<span class="cms-panel-link crumb">$Title.XML</span>
 	<% else %>
-		<a class="crumb" href="$Link">$Title.XML</a> /
+		<a class="cms-panel-link crumb" href="$Link">$Title.XML</a> /
 	<% end_if %>
 <% end_control %>
\ No newline at end of file
diff --git a/admin/templates/Includes/LeftAndMain_Menu.ss b/admin/templates/Includes/LeftAndMain_Menu.ss
index 45b5d6cb9..0cd4bee8f 100644
--- a/admin/templates/Includes/LeftAndMain_Menu.ss
+++ b/admin/templates/Includes/LeftAndMain_Menu.ss
@@ -12,7 +12,7 @@
 			<% control CurrentMember %>
 				<span>
 					<% _t('Hello','Hi') %>
-					<a href="{$AbsoluteBaseURL}admin/myprofile" class="profile-link ss-ui-dialog-link">
+					<a href="{$AbsoluteBaseURL}admin/myprofile" class="profile-link ss-ui-dialog-link" data-popupclass="edit-profile-popup">
 						<% if FirstName && Surname %>$FirstName $Surname<% else_if FirstName %>$FirstName<% else %>$Email<% end_if %>
 					</a>
 				</span>
diff --git a/admin/templates/LeftAndMain.ss b/admin/templates/LeftAndMain.ss
index 0e4d67392..d2644dcf9 100644
--- a/admin/templates/LeftAndMain.ss
+++ b/admin/templates/LeftAndMain.ss
@@ -24,7 +24,7 @@
 
 	</div>
 		
-	<div id="cms-editor-dialogs">
+	<div id="cms-editor-dialogs" class="hide">
 		<% control EditorToolbar %>
 			$MediaForm
 			$LinkForm
diff --git a/css/AssetUploadField.css b/css/AssetUploadField.css
index d4d9b52b5..e01cd5b40 100644
--- a/css/AssetUploadField.css
+++ b/css/AssetUploadField.css
@@ -9,9 +9,9 @@
 body.cms.ss-uploadfield-edit-iframe { padding: 16px; overflow: auto; }
 
 .ss-assetuploadfield h3 { border-bottom: 1px solid rgba(201, 205, 206, 0.8); -moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); -o-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8); margin: 0 0 8px; padding: 0 0 7px; clear: both; }
-.ss-assetuploadfield .field { border-bottom: 0; }
+.ss-assetuploadfield .field { border-bottom: 0; box-shadow: none; }
 .ss-assetuploadfield .ss-uploadfield-files { margin: 0; padding: 0; }
-.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item { border: 1px solid #b3b3b3; -moz-border-radius: 5px; -webkit-border-radius: 5px; -o-border-radius: 5px; -ms-border-radius: 5px; -khtml-border-radius: 5px; border-radius: 5px; -moz-background-clip: padding; -webkit-background-clip: padding; -o-background-clip: padding-box; -ms-background-clip: padding-box; -khtml-background-clip: padding-box; background-clip: padding-box; background: #E2E2E2; margin: 0 0 5px; padding: 0; overflow: hidden; position: relative; }
+.ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item { border: 1px solid #b3b3b3; border-bottom: 0; -moz-border-radius: 5px; -webkit-border-radius: 5px; -o-border-radius: 5px; -ms-border-radius: 5px; -khtml-border-radius: 5px; border-radius: 5px; -moz-background-clip: padding; -webkit-background-clip: padding; -o-background-clip: padding-box; -ms-background-clip: padding-box; -khtml-background-clip: padding-box; background-clip: padding-box; background: #E2E2E2; margin: 0 0 5px; padding: 0; overflow: hidden; position: relative; }
 .ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-preview { position: absolute; height: 30px; width: 40px; overflow: hidden; z-index: 1; }
 .ss-assetuploadfield .ss-uploadfield-files .ss-uploadfield-item-info { position: relative; height: 30px; overflow: hidden; background-color: #5db4df; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #5db4df), color-stop(8%, #5db1dd), color-stop(50%, #439bcb), color-stop(54%, #3f99cd), color-stop(96%, #207db6), color-stop(100%, #1e7cba)); background-image: -webkit-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); background-image: -moz-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); background-image: -o-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); background-image: -ms-linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); background-image: linear-gradient(top, #5db4df 0%, #5db1dd 8%, #439bcb 50%, #3f99cd 54%, #207db6 96%, #1e7cba 100%); }
 .ss-assetuploadfield .ss-uploadfield-files .ui-state-error .ss-uploadfield-item-info { background-color: #c11f1d; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #c11f1d), color-stop(4%, #bf1d1b), color-stop(8%, #b71b1c), color-stop(15%, #b61e1d), color-stop(27%, #b11d1d), color-stop(31%, #ab1d1c), color-stop(42%, #a51b1b), color-stop(46%, #9f1b19), color-stop(50%, #9f1b19), color-stop(54%, #991c1a), color-stop(58%, #971a18), color-stop(62%, #911b1b), color-stop(65%, #911b1b), color-stop(88%, #7e1816), color-stop(92%, #771919), color-stop(100%, #731817)); background-image: -webkit-linear-gradient(top, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%); background-image: -moz-linear-gradient(top, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%); background-image: -o-linear-gradient(top, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%); background-image: -ms-linear-gradient(top, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%); background-image: linear-gradient(top, #c11f1d 0%, #bf1d1b 4%, #b71b1c 8%, #b61e1d 15%, #b11d1d 27%, #ab1d1c 31%, #a51b1b 42%, #9f1b19 46%, #9f1b19 50%, #991c1a 54%, #971a18 58%, #911b1b 62%, #911b1b 65%, #7e1816 88%, #771919 92%, #731817 100%); }
diff --git a/css/GridField.css b/css/GridField.css
index 9466eeaa2..d17ce34a2 100644
--- a/css/GridField.css
+++ b/css/GridField.css
@@ -8,20 +8,33 @@
 .cms .ss-gridfield p button#action_export span.ui-button-text { padding-left: 26px; }
 .cms .ss-gridfield .add-existing-autocompleter { width: 500px; }
 .cms .ss-gridfield .add-existing-autocompleter input.relation-search { width: 380px; }
+.cms .ss-gridfield .grid-print-button { display: inline-block; }
+.cms .ss-gridfield .grid-csv-button { display: inline-block; }
 .cms table.ss-gridfield-table { display: table; box-shadow: none; padding: 0; border-collapse: separate; border-bottom: 0 none; width: 100%; }
 .cms table.ss-gridfield-table thead { color: #1d2224; background: transparent; }
 .cms table.ss-gridfield-table thead tr.filter-header .fieldgroup { max-width: 512px; }
+.cms table.ss-gridfield-table thead tr:first-child th:first-child { -moz-border-radius-topleft: 7px; -webkit-border-top-left-radius: 7px; -o-border-top-left-radius: 7px; -ms-border-top-left-radius: 7px; -khtml-border-top-left-radius: 7px; border-top-left-radius: 7px; }
+.cms table.ss-gridfield-table thead tr:first-child th:last-child { -moz-border-radius-topright: 7px; -webkit-border-top-right-radius: 7px; -o-border-top-right-radius: 7px; -ms-border-top-right-radius: 7px; -khtml-border-top-right-radius: 7px; border-top-right-radius: 7px; }
 .cms table.ss-gridfield-table tbody { background: #FFF; }
-.cms table.ss-gridfield-table tbody td { width: 100%; }
-.cms table.ss-gridfield-table tbody td.col-buttons { width: auto; text-align: right; white-space: nowrap; }
+.cms table.ss-gridfield-table tbody td { width: auto; white-space: nowrap; }
+.cms table.ss-gridfield-table tbody td.col-buttons { width: auto; text-align: right; }
+.cms table.ss-gridfield-table tbody td.col-description { width: auto; }
+.cms table.ss-gridfield-table tbody td.col-listChildrenLink { width: 16px; border-right: none; text-indent: -9999em; padding: 0; }
+.cms table.ss-gridfield-table tbody td.col-listChildrenLink .list-children-link { background: transparent url(../images/sitetree_ss_default_icons.png) no-repeat 12px -4px; display: block; }
+.cms table.ss-gridfield-table tbody td.col-getTreeTitle span.item { color: #1556b2; }
+.cms table.ss-gridfield-table tbody td.col-getTreeTitle span.badge { clear: both; text-transform: uppercase; display: inline-block; padding: 0px 3px; font-size: 0.75em; line-height: 1em; margin-left: 10px; margin-right: 6px; margin-top: -1px; -webkit-border-radius: 2px 2px; -moz-border-radius: 2px / 2px; -o-border-radius: 2px / 2px; -ms-border-radius: 2px / 2px; -khtml-border-radius: 2px / 2px; border-radius: 2px / 2px; }
+.cms table.ss-gridfield-table tbody td.col-getTreeTitle span.badge.modified { color: #7E7470; border: 1px solid #C9B800; background-color: #FFF0BC; }
+.cms table.ss-gridfield-table tbody td.col-getTreeTitle span.badge.addedtodraft { color: #7E7470; border: 1px solid #C9B800; background-color: #FFF0BC; }
+.cms table.ss-gridfield-table tbody td.col-getTreeTitle span.badge.deletedonlive { color: #636363; border: 1px solid #E49393; background-color: #F2DADB; }
+.cms table.ss-gridfield-table tbody td.col-getTreeTitle span.badge.removedfromdraft { color: #636363; border: 1px solid #E49393; background-color: #F2DADB; }
+.cms table.ss-gridfield-table tbody td.col-getTreeTitle span.badge.workflow-approval { color: #56660C; border: 1px solid #7C8816; background-color: #DAE79A; }
 .cms table.ss-gridfield-table tbody td button { border: none; background: none; margin: 0 0 0 2px; padding: 0; width: auto; text-shadow: none; }
 .cms table.ss-gridfield-table tbody td button.ui-state-hover { background: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; }
 .cms table.ss-gridfield-table tbody td button.ui-state-active { border: none; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; }
 .cms table.ss-gridfield-table tbody td a.edit-link { display: inline-block; width: 16px; height: 20px; text-indent: 9999em; overflow: hidden; vertical-align: middle; background: url(../images/icons/document--pencil.png) no-repeat 0 1px; }
 .cms table.ss-gridfield-table tfoot { color: #1d2224; }
 .cms table.ss-gridfield-table tfoot tr td { background: #95a5ab; padding: .7em; border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
-.cms table.ss-gridfield-table tr.title { -moz-border-radius-topleft: 7px; -webkit-border-top-left-radius: 7px; -o-border-top-left-radius: 7px; -ms-border-top-left-radius: 7px; -khtml-border-top-left-radius: 7px; border-top-left-radius: 7px; -moz-border-radius-topright: 7px; -webkit-border-top-right-radius: 7px; -o-border-top-right-radius: 7px; -ms-border-top-right-radius: 7px; -khtml-border-top-right-radius: 7px; border-top-right-radius: 7px; }
-.cms table.ss-gridfield-table tr.title th { position: relative; background: #7f9198; border-top: 1px solid rgba(0, 0, 0, 0.1); padding: 5px; min-height: 40px; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b1c0c5), color-stop(100%, #7f9198)); background-image: -webkit-linear-gradient(#b1c0c5, #7f9198); background-image: -moz-linear-gradient(#b1c0c5, #7f9198); background-image: -o-linear-gradient(#b1c0c5, #7f9198); background-image: -ms-linear-gradient(#b1c0c5, #7f9198); background-image: linear-gradient(#b1c0c5, #7f9198); -moz-border-radius-topleft: 7px; -webkit-border-top-left-radius: 7px; -o-border-top-left-radius: 7px; -ms-border-top-left-radius: 7px; -khtml-border-top-left-radius: 7px; border-top-left-radius: 7px; -moz-border-radius-topright: 7px; -webkit-border-top-right-radius: 7px; -o-border-top-right-radius: 7px; -ms-border-top-right-radius: 7px; -khtml-border-top-right-radius: 7px; border-top-right-radius: 7px; text-shadow: rgba(0, 0, 0, 0.3) 0px -1px 0; }
+.cms table.ss-gridfield-table tr.title th { position: relative; background: #7f9198; border-top: 1px solid rgba(0, 0, 0, 0.1); padding: 5px; min-height: 40px; background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #b1c0c5), color-stop(100%, #7f9198)); background-image: -webkit-linear-gradient(#b1c0c5, #7f9198); background-image: -moz-linear-gradient(#b1c0c5, #7f9198); background-image: -o-linear-gradient(#b1c0c5, #7f9198); background-image: -ms-linear-gradient(#b1c0c5, #7f9198); background-image: linear-gradient(#b1c0c5, #7f9198); text-shadow: rgba(0, 0, 0, 0.3) 0px -1px 0; }
 .cms table.ss-gridfield-table tr.title th h2 { padding: 0px; font-size: 16.8px; color: #fff; margin: 3px 8px 0; display: inline-block; }
 .cms table.ss-gridfield-table tr.title th .right > * { float: right; font-size: 14.4px; }
 .cms table.ss-gridfield-table tr.title th .left > * { float: left; font-size: 14.4px; }
@@ -36,20 +49,19 @@
 .cms table.ss-gridfield-table tr th div.fieldgroup, .cms table.ss-gridfield-table tr th div.fieldgroup-field { width: 100%; position: relative; }
 .cms table.ss-gridfield-table tr th div.fieldgroup { min-width: 200px; padding-right: 0; }
 .cms table.ss-gridfield-table tr th.extra, .cms table.ss-gridfield-table tr th.action { padding: 0; cursor: default; }
-.cms table.ss-gridfield-table tr th.extra button.ss-ui-button, .cms table.ss-gridfield-table tr th.extra button:hover.ss-ui-button, .cms table.ss-gridfield-table tr th.action button.ss-ui-button, .cms table.ss-gridfield-table tr th.action button:hover.ss-ui-button { margin-left: .9em; color: #222; }
-.cms table.ss-gridfield-table tr th.main { border-top: 1px solid rgba(0, 0, 0, 0.1); color: #fff; background: #9cb0b9; border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
+.cms table.ss-gridfield-table tr th.main { white-space: nowrap; border-top: 1px solid rgba(0, 0, 0, 0.1); color: #fff; background: #9cb0b9; border-bottom: 1px solid rgba(0, 0, 0, 0.1); }
 .cms table.ss-gridfield-table tr th.main span { text-shadow: rgba(0, 0, 0, 0.3) 0px -1px 0; }
+.cms table.ss-gridfield-table tr th.main.col-listChildrenLink { border-right: none; }
 .cms table.ss-gridfield-table tr th.extra { background: #bac8ce; padding: 5px; border-top: rgba(0, 0, 0, 0.3); }
 .cms table.ss-gridfield-table tr th.extra span { width: auto; display: inline; position: static; }
 .cms table.ss-gridfield-table tr th.extra span input { height: 28px; }
 .cms table.ss-gridfield-table tr th.extra button.ss-ui-button { padding: .3em; line-height: 1; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; position: relative; border-bottom-width: 0; -webkit-border-radius: 2px 2px; -moz-border-radius: 2px / 2px; -o-border-radius: 2px / 2px; -ms-border-radius: 2px / 2px; -khtml-border-radius: 2px / 2px; border-radius: 2px / 2px; }
-.cms table.ss-gridfield-table tr th.action { border-right: 0; }
 .cms table.ss-gridfield-table tr th.first { -moz-border-radius-topleft: 7px; -webkit-border-top-left-radius: 7px; -o-border-top-left-radius: 7px; -ms-border-top-left-radius: 7px; -khtml-border-top-left-radius: 7px; border-top-left-radius: 7px; }
 .cms table.ss-gridfield-table tr th.last { -moz-border-radius-topright: 7px; -webkit-border-top-right-radius: 7px; -o-border-top-right-radius: 7px; -ms-border-top-right-radius: 7px; -khtml-border-top-right-radius: 7px; border-top-right-radius: 7px; }
 .cms table.ss-gridfield-table tr th button#action_gridfield_relationadd:hover { color: #444 !important; /* Not sure why IE think it needs this */ }
 .cms table.ss-gridfield-table tr th button:hover { color: #ccc !important; /* Not sure why IE think it needs this */ }
 .cms table.ss-gridfield-table tr th button.ss-gridfield-sort:hover { color: #fff !important; -moz-box-shadow: none; -webkit-box-shadow: none; box-shadow: none; }
-.cms table.ss-gridfield-table tr th button.ss-gridfield-sort { background: transparent url(../images/arrows.png) no-repeat right 6px; border: none; width: 100%; text-align: left; padding: 4px 0; text-shadow: rgba(0, 0, 0, 0.3) 0px -1px 0; color: #fff; -moz-border-radius: 0; -webkit-border-radius: 0; -o-border-radius: 0; -ms-border-radius: 0; -khtml-border-radius: 0; border-radius: 0; }
+.cms table.ss-gridfield-table tr th button.ss-gridfield-sort { background: transparent url(../images/arrows.png) no-repeat right 6px; border: none; width: 100%; text-align: left; padding: 4px 8px 4px 0; text-shadow: rgba(0, 0, 0, 0.3) 0px -1px 0; color: #fff; -moz-border-radius: 0; -webkit-border-radius: 0; -o-border-radius: 0; -ms-border-radius: 0; -khtml-border-radius: 0; border-radius: 0; }
 .cms table.ss-gridfield-table tr th button.ss-gridfield-sort:hover { background-position: right -34px; }
 .cms table.ss-gridfield-table tr th button.ss-gridfield-sort.ss-gridfield-sorted-desc { background-position: right -72px; }
 .cms table.ss-gridfield-table tr th button.ss-gridfield-sort.ss-gridfield-sorted-asc { background-position: right -116px; }
diff --git a/css/GridField_print.css b/css/GridField_print.css
new file mode 100644
index 000000000..5f28eac4c
--- /dev/null
+++ b/css/GridField_print.css
@@ -0,0 +1,7 @@
+h3 { font-family: Arial, sans-serif; }
+
+table { border-collapse: collapse; font-family: Arial, sans-serif; color: #333; font-size: 12pt; }
+table th { border-bottom: 2px solid #333; padding: 5px 10px; font-weight: bold; text-align: left; }
+table th:first-child { padding-left: 0px; }
+table td { border-top: 1px solid #aaa; border-bottom: 1px solid #aaa; text-align: left; padding: 5px 10px; }
+table td:first-child { padding-left: 0px; }
diff --git a/dev/DebugView.php b/dev/DebugView.php
index 3ca978c2c..67d33cf20 100644
--- a/dev/DebugView.php
+++ b/dev/DebugView.php
@@ -93,7 +93,7 @@ class DebugView extends Object {
 		echo '<!DOCTYPE html><html><head><title>' . $url . '</title>';
 		echo '<style type="text/css">';
 		echo 'body { background-color:#eee; margin:0; padding:0; font-family:Helvetica,Arial,sans-serif; }';
-		echo '.info { border-bottom:1px dotted #333; background-color:#ccdef3; margin:0; padding:6px 12px; }';
+		echo '.info { margin:15px 0 0 0; padding:6px 12px; }';
 		echo '.info h1 { margin:0; padding:0; color:#333; letter-spacing:-2px; }';
 		echo '.header { margin:0; border-bottom:6px solid #ccdef3; height:23px; background-color:#666673; padding:4px 0 2px 6px; background-image:url('.Director::absoluteBaseURL().'cms/images/mainmenu/top-bg.gif); }';
 		echo '.trace { padding:6px 12px; }';
@@ -101,8 +101,8 @@ class DebugView extends Object {
 		echo 'pre { margin-left:18px; }';
 		echo 'pre span { color:#999;}';
 		echo 'pre .error { color:#f00; }';
-		echo '.pass { margin-top:18px; padding:2px 20px 2px 40px; color:#006600; background:#E2F9E3 url('.Director::absoluteBaseURL() .'cms/images/alert-good.gif) no-repeat scroll 7px 50%; border:1px solid #8DD38D; }';
-		echo '.fail { margin-top:18px; padding:2px 20px 2px 40px; color:#C80700; background:#FFE9E9 url('.Director::absoluteBaseURL() .'cms/images/alert-bad.gif) no-repeat scroll 7px 50%; border:1px solid #C80700; }';	
+		echo '.pass { margin-top:18px; padding:2px 20px 2px 40px; color:#006600; background:#E2F9E3 url('.Director::absoluteBaseURL() .'cms/images/alert-good.gif) no-repeat scroll 7px 50%; border:1px solid #8DD38D; border-radius:4px; }';
+		echo '.fail { margin-top:18px; padding:2px 20px 2px 40px; color:#C80700; background:#FFE9E9 url('.Director::absoluteBaseURL() .'cms/images/alert-bad.gif) no-repeat scroll 7px 50%; border:1px solid #C80700; border-radius:4px; }';	
 		echo '.failure span { color:#C80700; font-weight:bold; }';
 		echo '</style></head>';
 		echo '<body>';
diff --git a/dev/install/images/ss-logo.png b/dev/install/images/ss-logo.png
new file mode 100644
index 000000000..a5c45fa3b
Binary files /dev/null and b/dev/install/images/ss-logo.png differ
diff --git a/dev/install/install.css b/dev/install/install.css
new file mode 100644
index 000000000..18e5110b8
--- /dev/null
+++ b/dev/install/install.css
@@ -0,0 +1,392 @@
+.header {
+	padding-bottom:10px;
+}
+
+.header p {
+	color:#fff;
+}
+
+.install-header
+{
+	padding-bottom:10px;
+	background:#161616;
+}
+
+.install-header .inner{
+	padding-top:55px; 
+	position:relative;
+}
+
+.brand {
+	float:none;
+}
+
+.brand h1 {
+	float:left;
+}
+
+.brand .logo {
+	float:left;
+	margin-right:15px;
+	height:55px;
+	width:55px;
+	background:url(../install/images/ss-logo.png) center center no-repeat;
+}
+
+#Navigation {
+	display:none;
+}
+
+.main .inner ul {
+	padding-left:20px;
+}
+
+ul#Themes{
+	list-style: none;
+	margin: 0 5px 20px 5px;
+	float: left;
+	width: 320px;
+	padding:0;
+}
+	ul#Themes li {
+		clear: both;
+		padding: 3px 0;
+		margin-left: 0;
+		padding-left: 0;
+	}
+	ul#Themes input {
+		float: left;
+		margin-right: 5px;
+	}
+	ul#Themes label {
+		margin: -2px 5px 0 15px;
+	}
+
+h1.sectionHeading {
+	margin-top: 20px;
+}
+
+.error {
+	padding: 0.5em;
+	background-color: #fdf5f5;
+	border: 1px #ff8e8e solid;
+	border-radius:4px;
+	color: #f03838;
+}
+	.main p.error { color: #f03838;}
+.warning {
+	padding: 0.5em;
+	background-color: #fcf8f2;
+	border-radius:4px;
+	border: 1px #ffc28b solid;
+	color: #cb6a1c;
+}
+	.warning label {
+		display: inline;
+		margin-left: 5px;
+		color: #cb6a1c
+	}
+	.warning p {
+		font-size: 12px;
+		margin-bottom: 0;
+	}
+	.warning .warning_actions {
+		margin: 5px 0 5px 0;
+	}
+.good {
+	padding: 0.5em;
+	background-color: #e2fee1;
+	border: 1px #43cb3e solid;
+	color: #359318;
+}
+.error a,
+.warning a,
+.good a {
+	color: inherit;
+	text-decoration: underline;
+}
+p.error a:hover {
+	text-decoration: none;
+}
+span.middleColumn {
+	width: 297px;
+	margin:0;
+	padding: 4px;
+	float:right;
+}
+input.text, textarea, select {
+	padding: 2px;
+	border: 1px solid #A7A7A7;
+	color: #000;
+	font-size: 1.2em;
+	font-weight: bold;
+	width: 290px;
+}
+#stats-container label {
+	display: inline;
+}
+#stats {
+	margin-right: 5px;
+}
+
+.main h2 {
+	margin: 36px 0 18px 0;
+	font-weight: bold;
+	clear: left;
+	text-indent: 5px;
+	width: 100%;
+	overflow: hidden;
+	border-top:1px solid #E5E5E5;
+}
+	.main h2 span {
+		float: right;
+		font-size: 0.8em;
+		padding: 10px 10px 0 0;
+		font-weight: normal;
+		color: #888;
+	}
+
+	.main h2.no-line {
+		border-top:none;
+	}
+
+/**
+ * Requirements and test results
+ * ------------------------------------------------ */
+table.testResults {
+	border-collapse: collapse;
+	width: 100%;
+	margin: -1px 0px 10px 0;
+}
+	table.testResults td {
+		border: 1px #CCC solid;
+		width: 400px;
+		line-height: 15px;
+		padding: 6px;
+	}
+		table.testResults tr.good {
+			display: none;
+			border: none;
+		}
+			table.testResults tr.good td {
+				color: green;
+			}
+
+			table.testResults tr.warning {
+				border: none;
+			}
+				table.testResults tr.warning td {
+					color: #ef7f24;
+				}
+			table.testResults tr.error {
+				border: none;
+			}
+					table.testResult tr.error {
+						color: red;
+					}
+
+h5.requirement {
+	padding: 10px;
+	background: #f1f1f1;
+	border: 1px solid #ccc;
+	border-radius:4px 4px 0 0;
+	border-width: 1px;
+	margin: 0;
+	overflow: hidden;
+}	
+	h5.requirement span {
+		float: right;
+	}
+		h5.requirement.good {
+			color: #359318;
+		}
+		h5.requirement.warning {
+			color: #cb6a1c;
+		}
+		h5.requirement.error {
+			color: #F03838;
+		}
+	h5.requirement a {
+		font-size: 10px;
+		float: right;
+		line-height: 13px;
+		margin: 0 0 0 30px;
+		color: #666;
+		text-decoration: none;
+		font-weight: normal;
+	}
+.clear {
+	clear: both;
+}
+#adminAcc,
+#devHelp,
+#localeHelp {
+	padding-top: 20px;
+}
+
+.typography label {
+	margin-bottom: 0;
+}
+
+.main .helpText {
+	float: right;
+	width: 350px;
+	padding-right: 10px;
+}
+
+.section {
+	overflow: hidden;
+}
+
+.fields {
+	float: left;
+	width: 450px;
+}
+
+#devHelp,
+#devSection {
+	height: 18em;
+}
+
+.main .action input{
+	cursor:pointer;
+	text-align:center;
+	color:#fff;
+	background-color:#EF7F24;
+	border:none;
+	border-radius:4px;
+	font-size: 13px;
+	width: 220px;
+	font-weight: bold;
+	margin: 5px 0;
+	padding:5px;
+	font-family:"HelveticaNeueLTPro-Bd", "Helvetica Neue LT Pro Bold", "HelveticaNeueBold", "HelveticaNeue-Bold", "Helvetica Neue Bold", "Helvetica Neue LT Pro", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
+}
+
+#use_environment_field {
+	margin: 20px 0 10px;
+}
+
+#use_environment_field input {
+	float: left;
+	margin-right: 5px;
+}
+
+.dbfields {
+	margin: 10px 10px 10px 0;
+}
+
+#database_credentials {
+	margin: 0;
+	line-height: 1;
+}
+
+#database_selection {
+	overflow: hidden;
+	margin: 0;
+	padding-left:5px;
+}
+	#database_selection li {
+		margin-left: 0;
+		padding-left: 0;
+		list-style-type:none;
+	}
+		#database_selection li input {
+			margin-right: 5px;
+			border-radius:4px;
+			background:#ededed;
+		}
+
+		#database_selection li .databaseClass {
+			background:none;
+		}
+
+		#database_selection li input:focus{
+			outline:none; background-color:#fff;
+		}
+
+		#database_selection li .field label {
+			float:left;
+			margin-top:15px;
+		}
+
+#AdminAccount input {
+	border-radius:4px;
+	background:#ededed;
+}
+
+#AdminAccount select {
+	border-radius:4px;
+	background:none;
+	margin-top:5px;
+}
+
+#AdminAccount select:focus{
+	outline:none;
+}
+
+#AdminAccount input:focus{
+	outline:none; background-color:#fff;
+}
+
+#AdminAccount .field label {
+	float:left;
+	margin-top:15px;
+}
+
+.databaseError {
+	clear:both;
+	overflow: hidden;
+	width: 290px;
+	line-height: 1.2;
+	margin: 10px 0 20px;
+	display: none;
+	border-radius:4px;
+}
+
+	.databaseError ul {
+		margin-bottom: 0;
+	}
+	.databaseError ul, .databaseError li {
+		margin-left: 0;
+		padding-left: 0;
+	}
+
+input#install_button {
+	cursor:pointer;
+	text-align:center;
+	color:#fff;
+	background-color:#359318;
+	border:none;
+	border-radius:4px;
+	font-size: 13px;
+	width: 220px;
+	font-weight: bold;
+	margin: 5px 0;
+	padding:5px;
+	font-family:"HelveticaNeueLTPro-Bd", "Helvetica Neue LT Pro Bold", "HelveticaNeueBold", "HelveticaNeue-Bold", "Helvetica Neue Bold", "Helvetica Neue LT Pro", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif;
+}
+
+.goodInstall {
+	padding: 0.5em;
+	background-color: #e2fee1;
+	border: 1px #43cb3e solid;
+	color: #359318;
+	overflow: hidden;
+	line-height: 18px;
+	padding: 10px;
+}
+	.main p.goodInstall {
+		color: #359318;
+	}
+	.goodInstall a {
+		float: right;
+		font-size: 18px;
+		padding: 0 2px 2px 0;
+		font-weight: bold;
+	}
+	
+em.inlineBarText {
+	float: left;
+	font-style: normal;
+}
\ No newline at end of file
diff --git a/dev/install/install.php5 b/dev/install/install.php5
index 7111514ac..4b3ced276 100644
--- a/dev/install/install.php5
+++ b/dev/install/install.php5
@@ -944,28 +944,32 @@ class Installer extends InstallRequirements {
 <html>
 	<head>
 		<title>Installing SilverStripe...</title>
-		<link rel="stylesheet" type="text/css" href="themes/blackcandy/css/layout.css" />
-		<link rel="stylesheet" type="text/css" href="themes/blackcandy/css/typography.css" />
-		<link rel="stylesheet" type="text/css" href="themes/blackcandy/css/form.css" />
+		<link rel="stylesheet" type="text/css" href="themes/simple/css/layout.css" />
+		<link rel="stylesheet" type="text/css" href="themes/simple/css/typography.css" />
+		<link rel="stylesheet" type="text/css" href="themes/simple/css/form.css" />
 		<link rel="stylesheet" type="text/css" href="sapphire/dev/install/install.css" />
 		<script src="sapphire/thirdparty/jquery/jquery.js"></script>
 	</head>
 	<body>
-		<div id="BgContainer">
-			<div id="Container">
-				<div id="Header">
-					<h1>SilverStripe CMS / Framework Installation</h1>
+		<div class="install-header">
+			<div class="inner">
+				<div class="brand">
+					<span class="logo"></span>
+					<h1>SilverStripe</h1>
 				</div>
+				<p>Version <?php echo $silverstripe_version; ?></p>
+			</div>	
+		</div>
 
-				<div id="Navigation">&nbsp;</div>
-				<div class="clear"><!-- --></div>
+		<div id="Navigation">&nbsp;</div>
+		<div class="clear"><!-- --></div>
 
-				<div id="Layout">
-					<div class="typography">
-						<h1>Installing SilverStripe...</h1>
-						<p>I am now running through the installation steps (this should take about 30 seconds)</p>
-						<p>If you receive a fatal error, refresh this page to continue the installation</p>
-						<ul>
+		<div class="main">
+			<div class="inner">
+				<h1>Installing SilverStripe...</h1>
+				<p>I am now running through the installation steps (this should take about 30 seconds)</p>
+				<p>If you receive a fatal error, refresh this page to continue the installation</p>
+				<ul>
 <?php
 		} else {
 			echo "SILVERSTRIPE COMMAND-LINE INSTALLATION\n\n";
@@ -1016,7 +1020,7 @@ class Installer extends InstallRequirements {
 			$fh = fopen('mysite/_config.php', 'wb');
 			fclose($fh);
 		}
-		$theme = isset($_POST['template']) ? $_POST['template'] : 'blackcandy';
+		$theme = isset($_POST['template']) ? $_POST['template'] : 'simple';
 		$locale = isset($_POST['locale']) ? $_POST['locale'] : 'en_US';
 		$type = $config['db']['type'];
 		$dbConfig = $config['db'][$type];
diff --git a/docs/en/howto/customize-cms-tree.md b/docs/en/howto/customize-cms-tree.md
index 450c9af50..8062a6eea 100644
--- a/docs/en/howto/customize-cms-tree.md
+++ b/docs/en/howto/customize-cms-tree.md
@@ -61,7 +61,7 @@ __Example: using a subclass__
 		function getScheduledToPublish(){
 			// return either true or false
 		}
-
+		
 		function getStatusFlags(){
 			$flags = parent::getStatusFlags();
 			$flags['scheduledtopublish'] = "Scheduled To Publish";
@@ -71,6 +71,6 @@ __Example: using a subclass__
 
 The above subclass of `[api:SiteTree]` will add a new flag for indicating its
 __'Scheduled To Publish'__ status. The look of the page node will be changed
-from ![Normal Page Node](../_images/page_node_normal.png") to ![Scheduled Page Node](../_images/page_node_scheduled.png). The getStatusFlags has an `updateStatusFlags()`
+from ![Normal Page Node](../_images/page_node_normal.png) to ![Scheduled Page Node](../_images/page_node_scheduled.png). The getStatusFlags has an `updateStatusFlags()`
 extension point, so the flags can be modified through `DataExtension` rather than
 inheritance as well. Deleting existing flags works by simply unsetting the array key.
\ No newline at end of file
diff --git a/forms/HtmlEditorField.php b/forms/HtmlEditorField.php
index dc0e24deb..9ffb1b371 100644
--- a/forms/HtmlEditorField.php
+++ b/forms/HtmlEditorField.php
@@ -369,26 +369,54 @@ class HtmlEditorField_Toolbar extends RequestHandler {
 		));
 		
 		$numericLabelTmpl = '<span class="step-label"><span class="flyout">%d</span><span class="arrow"></span><strong class="title">%s</strong></span>';
-		$fields = new FieldList(
-			new LiteralField(
-				'Heading', 
-				sprintf('<h3>%s</h3>', _t('HtmlEditorField.IMAGE', 'Image'))
-			),
-			
-			$contentComposite = new CompositeField(
-				new LiteralField('headerSelect', '<h4 class="field header-select">' . sprintf($numericLabelTmpl, '1', _t('HtmlEditorField.Find', 'Find')) . '</h4>'),
+
+		$fromCMS = new CompositeField(
+			new LiteralField('headerSelect', '<h4 class="field header-select">' . sprintf($numericLabelTmpl, '1', _t('HtmlEditorField.Find', 'Find')) . '</h4>'),
 				$selectComposite = new CompositeField(
 					new TreeDropdownField('ParentID', _t('HtmlEditorField.FOLDER', 'Folder'), 'Folder'),
 					$fileField
-				),
-				
-				new LiteralField('headerEdit', '<h4 class="field header-edit">' . sprintf($numericLabelTmpl, '2', _t('HtmlEditorField.EditDetails', 'Edit details')) . '</h4>'),
-				$editComposite = new CompositeField(
-					new LiteralField('contentEdit', '<div class="content-edit"></div>')
 				)
-				
+		);
+
+		$fromCMS->addExtraClass('content');
+		$selectComposite->addExtraClass('content-select');
+
+		Requirements::css(SAPPHIRE_DIR . '/css/AssetUploadField.css');
+		$computerUploadField = Object::create('UploadField', 'AssetUploadField', '');
+		$computerUploadField->setConfig('previewMaxWidth', 40);
+		$computerUploadField->setConfig('previewMaxHeight', 30);
+		$computerUploadField->addExtraClass('ss-assetuploadfield');
+		$computerUploadField->removeExtraClass('ss-uploadfield');
+		$computerUploadField->setTemplate('HtmlEditorField_UploadField');
+		$computerUploadField->setFolderName(Upload::$uploads_folder);
+
+		$tabSet = new TabSet(
+			"MediaFormInsertImageTabs",
+			new Tab(
+				_t('HtmlEditorField.FROMCOMPUTER','From your computer'),
+				$computerUploadField
+			),
+			new Tab(
+				_t('HtmlEditorField.FROMCMS','From the CMS'),
+				$fromCMS
 			)
 		);
+
+		$allFields = new CompositeField(
+			$tabSet,
+			new LiteralField('headerEdit', '<h4 class="field header-edit">' . sprintf($numericLabelTmpl, '2', _t('HtmlEditorField.EditDetails', 'Edit details')) . '</h4>'),
+			$editComposite = new CompositeField(
+				new LiteralField('contentEdit', '<div class="content-edit"></div>')
+			)
+		);
+
+		$fields = new FieldList(
+			new LiteralField(
+				'Heading',
+				sprintf('<h3>%s</h3>', _t('HtmlEditorField.IMAGE', 'Insert Image'))
+			),
+			$allFields
+		);
 		
 		$actions = new FieldList(
 			FormAction::create('insertimage', _t('HtmlEditorField.BUTTONINSERT', 'Insert'))
@@ -404,9 +432,7 @@ class HtmlEditorField_Toolbar extends RequestHandler {
 			$actions
 		);
 		
-		$contentComposite->addExtraClass('content');
-		$selectComposite->addExtraClass('content-select');
-		
+
 		$form->unsetValidator();
 		$form->disableSecurityToken();
 		$form->loadDataFrom($this);
diff --git a/forms/gridfield/GridFieldExportButton.php b/forms/gridfield/GridFieldExportButton.php
index 919094196..db6e2b5c8 100644
--- a/forms/gridfield/GridFieldExportButton.php
+++ b/forms/gridfield/GridFieldExportButton.php
@@ -56,7 +56,7 @@ class GridFieldExportButton implements GridField_HTMLProvider, GridField_ActionP
 		$button->setAttribute('data-icon', 'download-csv');
 		$button->addExtraClass('no-ajax');
 		return array(
-			$this->targetFragment => '<p>' . $button->Field() . '</p>',
+			$this->targetFragment => '<p class="grid-csv-button">' . $button->Field() . '</p>',
 		);
 	}
 
@@ -110,6 +110,11 @@ class GridFieldExportButton implements GridField_HTMLProvider, GridField_ActionP
 		}
 
 		$items = $gridField->getList();
+		foreach($gridField->getConfig()->getComponents() as $component){
+			if($component instanceof GridFieldFilterHeader || $component instanceof GridFieldSortableHeader) {
+				$items = $component->getManipulatedData($gridField, $items);
+			}
+		}
 		foreach($items as $item) {
 			$columnData = array();
 			foreach($csvColumns as $columnSource => $columnHeader) {
diff --git a/forms/gridfield/GridFieldPrintButton.php b/forms/gridfield/GridFieldPrintButton.php
new file mode 100644
index 000000000..5bc06dbbc
--- /dev/null
+++ b/forms/gridfield/GridFieldPrintButton.php
@@ -0,0 +1,198 @@
+<?php
+/**
+ * @package sapphire
+ * @subpackage gridfield
+ */
+
+/**
+ * Adds an "Print" button to the bottom or top of a GridField.
+ * 
+ * WARNING: This is experimental and its API is subject to change.  Feel free to use it as long as you are happy of
+ * refactoring your code in the future.
+ */
+class GridFieldPrintButton implements GridField_HTMLProvider, GridField_ActionProvider, GridField_URLHandler {
+
+	/**
+	 * @var array Map of a property name on the printed objects, with values being the column title in the CSV file.
+	 * Note that titles are only used when {@link $csvHasHeader} is set to TRUE.
+	 */
+	protected $printColumns;
+
+	/**
+	 * @var boolean
+	 */
+	protected $printHasHeader = true;
+	
+	/**
+	 * Fragment to write the button to
+	 */
+	protected $targetFragment;
+
+	/**
+	 * @param string $targetFragment The HTML fragment to write the button into
+	 * @param array $printColumns The columns to include in the print view
+	 */
+	public function __construct($targetFragment = "after", $printColumns = null) {
+		$this->targetFragment = $targetFragment;
+		$this->printColumns = $printColumns;
+	}
+
+	/**
+	 * Place the print button in a <p> tag below the field
+	 */
+	public function getHTMLFragments($gridField) {
+		$button = new GridField_FormAction(
+			$gridField, 
+			'print', 
+			_t('TableListField.Print', 'Print'),
+			'print', 
+			null
+		);
+		$button->setAttribute('data-icon', 'grid_print');
+		$button->addExtraClass('gridfield-button-print');
+		//$button->addExtraClass('no-ajax');
+		return array(
+			$this->targetFragment => '<p class="grid-print-button">' . $button->Field() . '</p>', 
+		);
+	}
+
+	/**
+	 * print is an action button
+	 */
+	public function getActions($gridField) {
+		return array('print');
+	}
+
+	function handleAction(GridField $gridField, $actionName, $arguments, $data) {
+		if($actionName == 'print') {
+			return $this->handlePrint($gridField);
+		}
+	}
+
+	/**
+	 * it is also a URL
+	 */
+	function getURLHandlers($gridField) {
+		return array(
+			'print' => 'handlePrint',
+		);
+	}
+
+	/**
+	 * Handle the print, for both the action button and the URL
+ 	 */
+	public function handlePrint($gridField, $request = null) {
+		set_time_limit(60);
+		Requirements::clear();
+		Requirements::css(SAPPHIRE_DIR . '/css/GridField_print.css');
+		if($data = $this->generatePrintData($gridField)){
+			return $data->renderWith("GridField_print");
+		}
+	}
+
+	/**
+	 * Export core.
+ 	 */
+	function generatePrintData($gridField) {
+		$printColumns = ($this->printColumns) ? $this->printColumns : $gridField->getDisplayFields();
+		$header = null;
+		if($this->printHasHeader){
+			$header = new ArrayList();
+			foreach($printColumns as $field => $label){
+				$header->push(
+					new ArrayData(array(
+						"CellString" => $label,
+					))
+				);
+			}
+		}
+		
+		$items = $gridField->getList();
+		foreach($gridField->getConfig()->getComponents() as $component){
+			if($component instanceof GridFieldFilterHeader || $component instanceof GridFieldSortableHeader) {
+				$items = $component->getManipulatedData($gridField, $items);
+			}
+		}
+		
+		$itemRows = new ArrayList();
+		foreach($items as $item) {
+			$itemRow = new ArrayList();
+			foreach($printColumns as $field => $label) {
+				$value = $item->relField($field);
+				$itemRow->push(
+					new ArrayData(array(
+						"CellString" => $value,
+					))
+				);
+			}
+			$itemRows->push(new ArrayData(
+				array(
+					"ItemRow" => $itemRow
+				)
+			));
+			$item->destroy();
+		}
+		
+		//get title for the print view
+		$form = $gridField->getForm();
+		$currentController = Controller::curr();
+		$title = '';
+		if(method_exists($currentController, 'Title')) {
+			$title = $currentController->Title();
+		}else{
+			if($currentController->Title){
+				$title = $currentController->Title;
+			}else{
+				if($form->Name()){
+					$title = $form->Name();
+				}
+			}
+		}
+		if($fieldTitle = $gridField->Title()){
+			if($title) $title .= " - ";
+			$title .= $fieldTitle;
+		}
+		
+		$ret = new ArrayData(
+			array(
+				"Title" => $title,
+				"Header" => $header,
+				"ItemRows" => $itemRows,
+				"Datetime" => SS_Datetime::now(),
+				"Member" => Member::currentUser(),
+			)
+		);
+		
+		return $ret;
+	}
+
+	/**
+	 * @return array
+	 */
+	function getPrintColumns() {
+		return $this->printColumns;
+	}
+
+	/**
+	 * @param array
+	 */
+	function setPrintColumns($cols) {
+		$this->printColumns = $cols;
+		return $this;
+	}
+
+	/**
+	 * @return boolean
+	 */
+	function getPrintHasHeader() {
+		return $this->printHasHeader;
+	}
+
+	/**
+	 * @param boolean
+	 */
+	function setPrintHasHeader($bool) {
+		$this->printHasHeader = $bool;
+		return $this;
+	}
+}
diff --git a/images/sitetree_ss_default_icons.png b/images/sitetree_ss_default_icons.png
new file mode 100644
index 000000000..101351db9
Binary files /dev/null and b/images/sitetree_ss_default_icons.png differ
diff --git a/javascript/GridField.js b/javascript/GridField.js
index b0a41dc5a..3dab02eda 100644
--- a/javascript/GridField.js
+++ b/javascript/GridField.js
@@ -111,7 +111,42 @@
 			}
 		}
 	});
+	
+	$('.ss-gridfield .action.gridfield-button-print').entwine({
+		UUID: null,
+		onmatch: function() {
+			this._super();
+			this.setUUID(new Date().getTime());
+		},
+		onclick: function(e){
+			var btn = this.closest(':button'), grid = this.getGridField(),
+				form = this.closest('form'), data = form.find(':input').serialize();
 
+			// Add current button
+			data += '&' + encodeURIComponent(btn.attr('name')) + '=' + encodeURIComponent(btn.val());
+
+			// Include any GET parameters from the current URL, as the view state might depend on it.
+			// For example, a list prefiltered through external search criteria might be passed to GridField.
+			if(window.location.search) data = window.location.search.replace(/^\?/, '') + '&' + data;
+
+			var url = $.path.makeUrlAbsolute(grid.data('url') + '?' + data, $('base').attr('href'));
+			var newWindow = window.open(url);
+
+			return false;
+		}
+	});
+	
+	$('.ss-gridfield-print-iframe').entwine({
+		onmatch: function(){
+			this.hide().bind('load', function() 
+		    {	
+				this.focus();
+				var ifWin = this.contentWindow || this;
+				ifWin.print();
+		    });;
+		}
+	});
+	
 	/**
 	 * Prevents actions from causing an ajax reload of the field.
 	 * Useful e.g. for actions which rely on HTTP response headers being interpreted nativel
diff --git a/javascript/HtmlEditorField.js b/javascript/HtmlEditorField.js
index d282793c2..ddee7955f 100644
--- a/javascript/HtmlEditorField.js
+++ b/javascript/HtmlEditorField.js
@@ -671,7 +671,7 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
 					.toggleClass('ui-state-disabled', !hasItems);
 
 				// Hide file selection and step labels when editing an existing file
-				this.find('.header-select,.content-select,.header-edit')[editingSelected ? 'hide' : 'show']();
+				this.find('#MediaFormInsertImageTabs,.header-edit')[editingSelected ? 'hide' : 'show']();
 			},
 			getFileView: function(idOrUrl) {
 				return this.find('.ss-htmleditorfield-file[data-id=' + idOrUrl + ']');
@@ -713,6 +713,35 @@ ss.editorWrappers['default'] = ss.editorWrappers.tinyMCE;
 			}
 		});
 
+		/**
+		 * Show the second step after uploading an image
+		 */
+		$('form.htmleditorfield-form.htmleditorfield-mediaform div.ss-assetuploadfield').entwine({
+			//the UploadField div.ss-uploadfield-editandorganize is hidden in CSS,
+			// because we use the detail view for each individual file instead
+			onfileuploadstop: function(e) {
+				var form = this.closest('form');
+
+				//update the editFields to show those Files that are newly uploaded
+				var editFieldIDs = [];
+				form.find('div.content-edit').find('div.ss-htmleditorfield-file').each(function(){
+					//get the uploaded file ID when this event triggers, signaling the upload has compeleted successfully
+					editFieldIDs.push($(this).data('id'));
+				});
+				var uploadedFiles = $('ul.ss-uploadfield-files').children('li.ss-uploadfield-item');
+				uploadedFiles.each(function(){
+					var uploadedID = $(this).data('fileid');
+					if ($.inArray(uploadedID, editFieldIDs) == -1) {
+						//trigger the detail view for filling out details about the file we are about to insert into TinyMCE
+						form.showFileView(uploadedID);
+					}
+				});
+
+				form.redraw();
+			}
+
+		});
+
 		/**
 		 * Represents a single selected file, together with a set of form fields to edit its properties.
 		 * Overload this based on the media type to determine how the HTML should be created.
diff --git a/model/DataExtension.php b/model/DataExtension.php
index 7d8e9c172..a45da057d 100644
--- a/model/DataExtension.php
+++ b/model/DataExtension.php
@@ -32,7 +32,7 @@ abstract class DataExtension extends Extension {
 	);
 
 
-	static function add_to_class($class, $extensionClass, $args) {
+	static function add_to_class($class, $extensionClass, $args = null) {
 		if(method_exists($class, 'extraDBFields')) {
 			$extraStaticsMethod = 'extraDBFields';
 		} else {
diff --git a/scss/AssetUploadField.scss b/scss/AssetUploadField.scss
index 9414a01fe..a8261ccf3 100644
--- a/scss/AssetUploadField.scss
+++ b/scss/AssetUploadField.scss
@@ -24,6 +24,7 @@ body.cms.ss-uploadfield-edit-iframe {
 
 	.field {
 		border-bottom: 0;
+		box-shadow:none;
 	}
 	
 	.ss-uploadfield-files {
@@ -32,6 +33,7 @@ body.cms.ss-uploadfield-edit-iframe {
 		
 		.ss-uploadfield-item {
 			border: 1px solid lighten($color-medium-separator, 20%);
+			border-bottom:0;
 			@include border-radius(5px);
 			@include background-clip(padding-box);
 			background: #E2E2E2;
diff --git a/scss/GridField.scss b/scss/GridField.scss
index 84a854587..6ad3838e3 100644
--- a/scss/GridField.scss
+++ b/scss/GridField.scss
@@ -21,6 +21,7 @@ $gf_colour_border: rgba(0,0,0,.1);
 $gf_colour_zebra: #F0F4F7;
 $gf_colour_font: #666;
 $gf_colour_text_shadow: rgba(0,0,0,.3);
+$color-text-blue-link:#1556B2 !default;
 $gf_border_radius:	7px;
 $gf_color_border_filter_button: #9A9A9A;
 $gf_color_button: #e6e6e6;
@@ -75,6 +76,12 @@ $gf_grid_x:	16px;
 			}
 			width: 500px;
 		}
+		.grid-print-button{
+			display: inline-block;
+		}
+		.grid-csv-button{
+			display: inline-block;
+		}
 	}
 
 	table.ss-gridfield-table {
@@ -93,6 +100,14 @@ $gf_grid_x:	16px;
 					max-width:$gf_grid_x*32; //max width 512px
 				}
 			}
+			tr:first-child { //sets 7px border-radius on the top row in the thead - accounts for edgecase where there is no title row.
+				th:first-child {
+					@include border-top-left-radius($gf_border_radius);
+				}
+				th:last-child {
+					@include border-top-right-radius($gf_border_radius);
+				}
+			} 
 		}
 		
 		tbody {
@@ -101,11 +116,74 @@ $gf_grid_x:	16px;
 				// Give browser some hints on which cols take priority:
 				// The last column (buttons) should always shrink to fit.
 				// Overwritten for IE7, which doesn't support this.
-				width: 100%;
+				width: auto;
+				white-space:nowrap;
 				&.col-buttons {
 					width: auto;
 					text-align: right;
-					white-space: nowrap;
+				}
+
+				&.col-description {
+					width: auto;
+				}
+
+				&.col-listChildrenLink {
+					width:$gf_grid_x;
+					border-right:none;
+					text-indent:-9999em;
+					padding:0;
+					.list-children-link {
+						background: transparent url(../images/sitetree_ss_default_icons.png) no-repeat 12px -4px;
+						display:block;
+					}
+				}
+
+				&.col-getTreeTitle {
+					span.item {
+						color:$color-text-blue-link;
+					}
+					span.badge {
+						clear: both;
+						text-transform: uppercase;
+						display: inline-block;
+						padding: 0px 3px;
+						font-size: 0.75em;
+						line-height: 1em;
+						margin-left: 10px;
+						margin-right: 6px;
+						margin-top:  -1px;
+						@include border-radius(2px, 2px);
+					}
+					
+					span.badge.modified {
+						color:  #7E7470;
+						border: 1px solid #C9B800;
+						background-color: #FFF0BC;
+					}
+					
+					span.badge.addedtodraft {
+						color:  #7E7470;
+						border: 1px solid #C9B800;
+						background-color: #FFF0BC;
+					}
+					
+					span.badge.deletedonlive {
+						color:  #636363;
+						border: 1px solid #E49393;
+						background-color: #F2DADB;
+					}
+					
+					span.badge.removedfromdraft {
+						color:  #636363;
+						border: 1px solid #E49393;
+						background-color: #F2DADB;
+					}
+					
+					span.badge.workflow-approval {
+						color:  #56660C;
+						border: 1px solid #7C8816;
+						background-color: #DAE79A;
+					}
 				}
 
 				button {
@@ -149,7 +227,6 @@ $gf_grid_x:	16px;
 		
 		tr {	
 			&.title {
-				@include border-top-radius($gf_border_radius);
 				th {
 					position: relative;
 					background: $gf_colour_gradient_dark;
@@ -157,7 +234,6 @@ $gf_grid_x:	16px;
 					padding: 5px;
 					min-height: 40px; //this is to accomodate the add new button.
 					@include background-image(linear-gradient($gf_colour_gradient_light, $gf_colour_gradient_dark));
-					@include border-top-radius($gf_border_radius);
 					@include single-text-shadow($gf_colour_text_shadow, 0px, -1px, 0);
 					h2{
 						padding: 0px;
@@ -225,14 +301,9 @@ $gf_grid_x:	16px;
 				&.extra,&.action {
 					padding: 0;
 					cursor: default;
-					button,button:hover {
-						&.ss-ui-button {
-							margin-left: .9em;
-							color: #222;
-						}
-					}
 				}
 				&.main{
+					white-space:nowrap;
 					border-top: 1px solid $gf_colour_border;
 					color:#fff;
 					background: darken($gf_colour_subheader,10%);
@@ -240,6 +311,9 @@ $gf_grid_x:	16px;
 					span{
 						@include single-text-shadow($gf_colour_text_shadow, 0px, -1px, 0);
 					}
+					&.col-listChildrenLink {
+						border-right:none;
+					}
 				}
 				&.extra {
 					background: $gf_colour_subheader;		
@@ -262,9 +336,6 @@ $gf_grid_x:	16px;
 						@include border-radius(2px, 2px);			
 					}				
 				}
-				&.action {
-					border-right: 0;
-				}
 				&.first {
 					@include border-top-left-radius($gf_border_radius);
 				}
@@ -288,7 +359,7 @@ $gf_grid_x:	16px;
 						border:none;	
 						width:100%;
 						text-align: left;
-						padding: 4px 0;
+						padding: 4px 8px 4px 0;
 						@include single-text-shadow($gf_colour_text_shadow, 0px, -1px, 0);
 						color: #fff;
 						@include border-radius(0);
diff --git a/scss/GridField_print.scss b/scss/GridField_print.scss
new file mode 100644
index 000000000..61a753ebf
--- /dev/null
+++ b/scss/GridField_print.scss
@@ -0,0 +1,31 @@
+h3 {
+	font-family: Arial, sans-serif;
+}
+table {
+	border-collapse: collapse;
+	font-family: Arial, sans-serif;
+	color: #333;
+	font-size: 12pt;
+	tr{
+		
+	}
+	th{
+		border-bottom: 2px solid #333;
+		padding: 5px 10px; 
+		font-weight: bold;
+		text-align: left;
+		&:first-child{
+			padding-left: 0px; 
+		}
+		
+	}
+	td{
+		border-top: 1px solid #aaa;
+		border-bottom: 1px solid #aaa;
+		text-align: left;
+		padding: 5px 10px;
+		&:first-child{
+			padding-left: 0px; 
+		} 
+	}
+}
\ No newline at end of file
diff --git a/security/Group.php b/security/Group.php
index 7c7a45bfd..5021b99c8 100755
--- a/security/Group.php
+++ b/security/Group.php
@@ -95,7 +95,8 @@ class Group extends DataObject {
 
 		if($this->ID) {
 			$config = new GridFieldConfig_RelationEditor();
-			$config->addComponents(new GridFieldExportButton());
+			$config->addComponents(new GridFieldExportButton('before'));
+			$config->addComponents(new GridFieldPrintButton('before'));
 			$config->getComponentByType('GridFieldAddExistingAutocompleter')
 				->setResultsFormat('$Title ($Email)')->setSearchFields(array('FirstName', 'Surname', 'Email'));
 			$config->getComponentByType('GridFieldDetailForm')->setValidator(new Member_Validator());
diff --git a/templates/HtmlEditorField_UploadField.ss b/templates/HtmlEditorField_UploadField.ss
new file mode 100644
index 000000000..f8e35a5a8
--- /dev/null
+++ b/templates/HtmlEditorField_UploadField.ss
@@ -0,0 +1,38 @@
+<div class="ss-uploadfield-item ss-uploadfield-addfile field">
+
+	<h4>
+		<span class="step-label">
+			<span class="flyout">1</span><span class="arrow"></span>
+			<span class="title"><% _t('AssetUploadField.ChooseFiles', 'Choose files') %></span>
+		</span>
+	</h4>
+
+	<div class="ss-uploadfield-item-info">
+		<label class="ss-uploadfield-fromcomputer ss-ui-button ss-ui-action-constructive" title="<% _t('AssetUploadField.FROMCOMPUTERINFO', 'Upload from your computer') %>" data-icon="drive-upload">
+			<% _t('AssetUploadField.FROMCOMPUTER', 'Choose files from your computer') %>
+			<input id="$id" name="$getName" class="$extraClass ss-uploadfield-fromcomputer-fileinput" data-config="$configString" type="file"<% if $multiple %> multiple="multiple"<% end_if %> title="<% _t('AssetUploadField.FROMCOMPUTER', 'Choose files from your computer') %>" />
+		</label>
+
+		<div class="clear"><!-- --></div>
+	</div>
+	<div class="ss-uploadfield-item-uploador">
+		<% _t('AssetUploadField.UPLOADOR', 'OR') %>
+	</div>
+	<div class="ss-uploadfield-item-preview ss-uploadfield-dropzone">
+		<div>
+			<% _t('AssetUploadField.DROPAREA', 'Drop Area') %>
+			<span><% _t('AssetUploadField.DRAGFILESHERE', 'Drag files here') %></span>
+		</div>
+	</div>
+	<div class="clear"><!-- --></div>
+</div>
+
+<div class="ss-uploadfield-editandorganize">
+	<h3>
+		<span class="step-label">
+			<span class="flyout">2</span><span class="arrow"></span>
+			<span class="title"><% _t('AssetUploadField.EDITANDORGANIZE', 'Edit & organize') %></span>
+		</span>
+	</h3>
+	<ul class="ss-uploadfield-files files"></ul>
+</div>
\ No newline at end of file
diff --git a/templates/Includes/GridFieldSortableHeader_Row.ss b/templates/Includes/GridFieldSortableHeader_Row.ss
index a1241d2cb..d1493644c 100644
--- a/templates/Includes/GridFieldSortableHeader_Row.ss
+++ b/templates/Includes/GridFieldSortableHeader_Row.ss
@@ -1,5 +1,5 @@
 <tr class="sortable-header">
 	<% control Fields %>
-		<th class="main"><span>$Field</span></th>
+		<th class="main col-$getName"><span>$Field</span></th>
 	<% end_control %>
 </tr>
diff --git a/templates/Includes/GridField_print.ss b/templates/Includes/GridField_print.ss
new file mode 100644
index 000000000..20b61155e
--- /dev/null
+++ b/templates/Includes/GridField_print.ss
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<% if $Title %><title>$Title</title><% end_if %>
+	</head>
+	<body onload="window.print();">
+		<% if $Title %><h3>$Title</h3><% end_if %>
+		<table>
+			<thead>
+				<tr><% control Header %><th>$CellString</th><% end_control %></tr>
+			</thead>
+			<tbody>
+				<% control ItemRows %>
+					<tr><% control ItemRow %><td>$CellString</td><% end_control %></tr>
+				<% end_control %>
+			</tbody>
+		</table>
+		<p>
+			<% _t('GridField.PRINTEDAT', 'Printed at') %> $Datetime.Time, $Datetime.Date
+			<br />
+			<% _t('GridField.PRINTEDBY', 'Printed by') %> $Member.Name
+		</p>
+	</body>
+
+</html>
\ No newline at end of file
diff --git a/templates/Includes/HtmlEditorField_viewfile.ss b/templates/Includes/HtmlEditorField_viewfile.ss
index 988f18e3b..ded2dbc83 100644
--- a/templates/Includes/HtmlEditorField_viewfile.ss
+++ b/templates/Includes/HtmlEditorField_viewfile.ss
@@ -2,7 +2,9 @@
 	<div class="overview">
 		<span class="thumbnail">$Preview</span>
 		<span class="title">$Name</span>
-		<a href="#" class="action-delete"><% _t('HtmlEditorField.DeleteItem', 'delete') %></a>
+		<a href="#" class="action-delete ui-state-default">
+			<span class="ui-button-icon-primary ui-icon btn-icon-cross-circle"></span>
+		</a>
 	</div>
 	<div class="details">
 		<fieldset>