diff -up ImageMagick-6.2.8/wand/mogrify.c.page-parse ImageMagick-6.2.8/wand/mogrify.c --- ImageMagick-6.2.8/wand/mogrify.c.page-parse 2010-04-08 10:54:40.000000000 +0100 +++ ImageMagick-6.2.8/wand/mogrify.c 2010-04-08 10:54:47.000000000 +0100 @@ -5239,6 +5239,7 @@ WandExport MagickBooleanType MogrifyImag if (LocaleCompare("page",option+1) == 0) { char + *canonical_page, page[MaxTextExtent]; const char @@ -5252,7 +5253,7 @@ WandExport MagickBooleanType MogrifyImag if (*option == '+') { - (void) RemoveImageOption(image_info,option+1); + (void) DeleteImageOption(image_info,option+1); (void) CloneString(&image_info->page,(char *) NULL); break; } @@ -5260,14 +5261,16 @@ WandExport MagickBooleanType MogrifyImag image_option=GetImageOption(image_info,"page"); if (image_option != (const char *) NULL) flags=ParseAbsoluteGeometry(image_option,&geometry); - flags=ParseAbsoluteGeometry(argv[i+1],&geometry); + canonical_page=GetPageGeometry(argv[i+1]); + flags=ParseAbsoluteGeometry(canonical_page,&geometry); + canonical_page=DestroyString(canonical_page); (void) FormatMagickString(page,MaxTextExtent,"%lux%lu", geometry.width,geometry.height); if (((flags & XValue) != 0) || ((flags & YValue) != 0)) (void) FormatMagickString(page,MaxTextExtent,"%lux%lu%+ld%+ld", geometry.width,geometry.height,geometry.x,geometry.y); (void) SetImageOption(image_info,option+1,page); - image_info->page=GetPageGeometry(page); + (void) CloneString(&image_info->page,page); break; } if (LocaleCompare("pen",option+1) == 0)