diff --git a/canvasactions/canvasactions.inc b/canvasactions/canvasactions.inc
index 4c2d04c..d5c4c45 100755
--- a/canvasactions/canvasactions.inc
+++ b/canvasactions/canvasactions.inc
@@ -612,6 +612,7 @@ function canvasactions_file2canvas_form($data) {
     'xpos' => '',
     'ypos' => '',
     'alpha' => '100',
+    'scale' => '100',
     'path' => '',
   );
   $data = array_merge($defaults, (array) $data);
@@ -630,6 +631,13 @@ function canvasactions_file2canvas_form($data) {
     '#size' => 6,
     '#description' => t('Opacity: 0-100. <b>Warning:</b> Due to a limitation in the GD toolkit, using an opacity other than 100% requires the system to use an algorithm that\'s much slower than the built-in functions. If you want partial transparency, you are better to use an already-transparent png as the overlay source image.'),
   );
+  $form['scale'] = array(
+    '#type' => 'textfield',
+    '#title' => t('scale'),
+    '#default_value' => $data['scale'],
+    '#size' => 6,
+    '#description' => t('Overlay scale: 0-100. Leave empty to use the original size of overlay image.'),
+  );
   $form['path'] = array(
     '#type' => 'textfield',
     '#title' => t('file name'),
@@ -645,7 +653,7 @@ function canvasactions_file2canvas_form($data) {
  */
 function theme_canvasactions_file2canvas_summary($variables) {
   $data = $variables['data'];
-  return '<strong>' . $data['path'] . '</strong> x:' . $data['xpos'] . ', y:' . $data['ypos'] . ' alpha:' . (@$data['alpha'] ? $data['alpha'] : 100) . '%';
+  return '<strong>' . $data['path'] . '</strong>, x:' . $data['xpos'] . ', y:' . $data['ypos'] . ', alpha:' . (@$data['alpha'] ? $data['alpha'] : 100) . '%' . ', scale:' . (@$data['scale'] ? $data['scale'].'%' : '-');
 }
 
 /**
@@ -660,6 +668,11 @@ function theme_canvasactions_file2canvas_summary($variables) {
 function canvasactions_file2canvas_image($image, $data = array()) {
   $overlay = imagecache_actions_image_load($data['path']);
   if ($overlay) {
+    if ($data['scale']>0) {
+      $overlay_w = $image->info['width'] * $data['scale'] / 100;
+      $overlay_h = $image->info['height'] * $data['scale'] / 100;
+      image_scale($overlay, $overlay_w, $overlay_h, TRUE);
+    }
     if (!isset($data['alpha'])) {
       $data['alpha'] = 100;
     }
