diff --git a/panels_ipe/css/panels_ipe.css b/panels_ipe/css/panels_ipe.css
index 4368547..9dc40b3 100644
--- a/panels_ipe/css/panels_ipe.css
+++ b/panels_ipe/css/panels_ipe.css
@@ -388,7 +388,15 @@ div.panels-ipe-control input.panels-ipe-cancel:hover,
 div.panels-ipe-control input.panels-ipe-save:focus,
 div.panels-ipe-control input.panels-ipe-cancel:focus,
 div.panels-ipe-control input.panels-ipe-save:active,
-div.panels-ipe-control input.panels-ipe-cancel:active {
+div.panels-ipe-control input.panels-ipe-cancel:active,
+div.panels-ipe-control input.panels-ipe-preview,
+div.panels-ipe-control input.panels-ipe-preview-off,
+div.panels-ipe-control input.panels-ipe-preview:hover,
+div.panels-ipe-control input.panels-ipe-preview-off:hover,
+div.panels-ipe-control input.panels-ipe-preview:focus,
+div.panels-ipe-control input.panels-ipe-preview-off:focus,
+div.panels-ipe-control input.panels-ipe-preview:active,
+div.panels-ipe-control input.panels-ipe-preview-off:active {
   background-repeat: no-repeat;
 }
 
@@ -432,6 +440,28 @@ div.panels-ipe-control .panels-ipe-cancel {
   );
 }
 
+#panels-ipe-preview {
+  background-image: url(../images/icon_preview.png),-webkit-gradient(linear,left bottom,left top,color-stop(0,#383838),color-stop(1,#666));
+  background-repeat: no-repeat;
+}
+
+div.panels-ipe-control input.panels-ipe-preview,
+div.panels-ipe-control input.panels-ipe-preview-off {
+  background-image: url(../images/icon_preview.png);
+  background-image: url(../images/icon_preview.png), linear-gradient(bottom, #383838 0%, #666666 100%);
+  background-image: url(../images/icon_preview.png), -o-linear-gradient(bottom, #383838 0%, #666666 100%);
+  background-image: url(../images/icon_preview.png), -moz-linear-gradient(bottom, #383838 0%, #666666 100%);
+  background-image: url(../images/icon_preview.png), -webkit-linear-gradient(bottom, #383838 0%, #666666 100%);
+  background-image: url(../images/icon_preview.png), -ms-linear-gradient(bottom, #383838 0%, #666666 100%);
+  background-image: url(../images/icon_preview.png), -webkit-gradient(
+    linear,
+    left bottom,
+    left top,
+    color-stop(0, #383838),
+    color-stop(1, #666666)
+  );
+}
+
 div.panels-ipe-pseudobutton-container:hover,
 div.panels-ipe-control .form-submit:hover,
 div.panels-ipe-pseudobutton-container:focus,
@@ -452,6 +482,22 @@ div.panels-ipe-control .form-submit:focus {
   color: #fff;
 }
 
+div.panels-ipe-control input.panels-ipe-preview:hover,
+div.panels-ipe-control input.panels-ipe-preview-off:hover {
+  background-image: url(../images/icon_preview.png), linear-gradient(bottom, #3D3D3D 0%, #999999 100%);
+  background-image: url(../images/icon_preview.png), -o-linear-gradient(bottom, #3D3D3D 0%, #999999 100%);
+  background-image: url(../images/icon_preview.png), -moz-linear-gradient(bottom, #3D3D3D 0%, #999999 100%);
+  background-image: url(../images/icon_preview.png), -webkit-linear-gradient(bottom, #3D3D3D 0%, #999999 100%);
+  background-image: url(../images/icon_preview.png), -ms-linear-gradient(bottom, #3D3D3D 0%, #999999 100%);
+  background-image: url(../images/icon_preview.png), -webkit-gradient(
+    linear,
+    left bottom,
+    left top,
+    color-stop(0, #3D3D3D),
+    color-stop(1, #999999)
+  );
+}
+
 div.panels-ipe-pseudobutton-container a:hover,
 div.panels-ipe-pseudobutton-container a:focus {
   color: #fff;
@@ -484,8 +530,25 @@ div.panels-ipe-control .panels-ipe-save:focus {
   linear,
   left bottom,
   left top,
-  color-stop(0, #3d3d3d),
-  color-stop(1, #999999)
+    color-stop(0, #3d3d3d),
+    color-stop(1, #999999)
+  );
+}
+
+div.panels-ipe-control input.panels-ipe-preview:active,
+div.panels-ipe-control input.panels-ipe-preview-off:active {
+  background-image: url(../images/icon_preview.png), linear-gradient(bottom, #616161 0%, #333333 100%);
+  background-image: url(../images/icon_preview.png), -o-linear-gradient(bottom, #616161 0%, #333333 100%);
+  background-image: url(../images/icon_preview.png), -moz-linear-gradient(bottom, #616161 0%, #333333 100%);
+  background-image: url(../images/icon_preview.png), -webkit-linear-gradient(bottom, #616161 0%, #333333 100%);
+  background-image: url(../images/icon_preview.png), -ms-linear-gradient(bottom, #616161 0%, #333333 100%);
+
+  background-image: url(../images/icon_preview.png), -webkit-gradient(
+    linear,
+    left bottom,
+    left top,
+    color-stop(0, #3d3d3d),
+    color-stop(1, #999999)
   );
 }
 
diff --git a/panels_ipe/images/icon_preview.png b/panels_ipe/images/icon_preview.png
new file mode 100644
index 0000000000000000000000000000000000000000..4000da1dec7a6af07250500bb571df9f73d3941b
GIT binary patch
literal 591
zcmV-V0<iswP)<h;3K|Lk000e1NJLTq000>P000>X1^@s6#OZ}&00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3ljhU3ljkVnw%H_000McNliru-UI>^5*j7YJFx%&0o+MM
zK~zY`?UYZC(m)u-pXo4dr?go_F2utgxOgyGbz_VqhW#4E&)4A5yC=LTd(aT@V!S{I
zgkVBTrzvgck0&<kzYQYZ_+4k7_m}t0I|H0JapJ_C^!t4p$MFLp#FY@DU6y6-XvOFA
zIRSt;jz3B%lg(zM(ljlNG2es`AO4iH{zkIhZtq1=lu9X|%w{t`%Q7oTlFDQ<xo=t4
z^Rg^Q!{LzroFn@R27>`@wOZF&>!(smc%FB2W{kmly+*Uy1b{B*{PjVS<#O4yZTm}-
zB>ql72)U6ELXf5@>h-$xeV^UVR`!)Br5+MOszp(NQVK!{j4?lsg%D6mf2p~*gb<Pg
z&;Y1X>bG}{F_2Q?U<qUFv(|d;x^83F$?b7zt)Y}cp68o`x2w@;#6?kj<(wnWb1=rh
z7=vxws8lK_iUL6p7|-*r4&JUEtJP{`S=OT@Nx&F`F$PL01VLb?(<zxwr<1d@vx`or
z6Cd<W0AR6LTu3Qjan3ikZNqUKIF2)?lwOX<<5`wv=R%10|J2D{^m@H>Ddos<oWS?}
z>sqb$qTOz5>zI;mw>z;c>#`^cq-pvrilR41?_@_9hL4RgpIp~PwOV~k{?|_(hT%)C
d^*hda`W@8D;62by3#0%5002ovPDHLkV1mS;4+a1L

literal 0
HcmV?d00001

diff --git a/panels_ipe/js/panels_ipe.js b/panels_ipe/js/panels_ipe.js
index 4f1fcaf..abad34a 100644
--- a/panels_ipe/js/panels_ipe.js
+++ b/panels_ipe/js/panels_ipe.js
@@ -442,6 +442,23 @@ $(function() {
       }
     }
 
+    // Enable Preview buttom in container control
+    if ($(this.element).attr('id') == 'panels-ipe-preview') {
+      if($(this.element).hasClass( "panels-ipe-preview")) {
+        $('.panels-ipe-placeholder, .panels-ipe-handlebar-wrapper').hide();
+        $('.panels-ipe-editing').removeClass('panels-ipe-editing').addClass('panels-ipe-previewing');
+        $(this.element).removeClass('panels-ipe-preview').addClass('panels-ipe-preview-off');
+        $(this.element).attr('value', 'Preview off');
+      } else {
+        $('.panels-ipe-placeholder, .panels-ipe-handlebar-wrapper').show();
+        $('.panels-ipe-editing').removeClass('panels-ipe-previewing').addClass('panels-ipe-editing');
+        $(this.element).removeClass('panels-ipe-preview-off').addClass('panels-ipe-preview');
+        $(this.element).attr('value', 'Preview');
+        Drupal.PanelsIPE.editors[this.element_settings.ipe_cache_key].showContainer();
+      }
+      return false;
+    }
+
     var retval = this.ipeReplacedEventResponse(element, event);
     if (this.ajaxing && this.element_settings.ipe_cache_key) {
       // Move the throbber so that it appears outside our container.
diff --git a/panels_ipe/plugins/display_renderers/panels_renderer_ipe.class.php b/panels_ipe/plugins/display_renderers/panels_renderer_ipe.class.php
index 361e53e..3e531e1 100644
--- a/panels_ipe/plugins/display_renderers/panels_renderer_ipe.class.php
+++ b/panels_ipe/plugins/display_renderers/panels_renderer_ipe.class.php
@@ -541,5 +541,17 @@ function panels_ipe_edit_control_form($form, &$form_state) {
     '#attributes' => array('class' => array('panels-ipe-cancel')),
     '#value' => t('Cancel'),
   );
+
+  $form['buttons']['preview'] = array(
+    '#type' => 'button',
+    '#id' => 'panels-ipe-preview',
+    '#attributes' => array(
+      'class' => array(
+        '0' => 'panels-ipe-preview',
+        ),
+      ),
+    '#value' => 'Preview',
+  );
+
   return $form;
 }
