diff --git a/Magick++/lib/Image.cpp b/Magick++/lib/Image.cpp
index 81d9a71..f160085 100644
--- a/Magick++/lib/Image.cpp
+++ b/Magick++/lib/Image.cpp
@@ -520,7 +520,9 @@
 void Magick::Image::channel ( const ChannelType channel_ )
 {
   modifyImage();
-  SeparateImageChannel ( image(), channel_ );
+  PushPixelComponentMap( image(), channel_ );
+  SeparateImage ( image() );
+  PopPixelComponentMap( image() );
   throwImageException();
 }