diff --git a/canvasactions/canvasactions.inc b/canvasactions/canvasactions.inc
index d94d91e..b87150b 100755
--- a/canvasactions/canvasactions.inc
+++ b/canvasactions/canvasactions.inc
@@ -342,6 +342,11 @@ function canvasactions_definecanvas_effect($image, $data) {
 }
 
 function canvasactions_definecanvas_dimensions(array &$dimensions, array $data) {
+  // If the caller has provided no dimension info, we can't calculate anything.
+  // http://drupal.org/node/1591198
+  if (! $dimensions['width'] || !$dimensions['height']) {
+    return;
+  }
   // May be given either exact or relative dimensions.
   if ($data['exact']['width'] || $data['exact']['height']) {
     // Allows only one dimension to be used if the other is unset.
@@ -575,6 +580,10 @@ function canvasactions_canvas2file_image(&$image, $data = array()) {
  *   An associative array containing the effect data.
  */
 function canvasactions_canvas2file_dimensions(array &$dimensions, array $data) {
+  if (! $dimensions['width'] || !$dimensions['height']) {
+    return;
+  }
+  
   if ($data['dimensions'] !== 'original') {
     $underlay = imagecache_actions_image_load($data['path']);
     if ($underlay) {
