diff --git a/Magick++/lib/CoderInfo.cpp b/Magick++/lib/CoderInfo.cpp
index 4083e82..9d08556 100644
--- a/Magick++/lib/CoderInfo.cpp
+++ b/Magick++/lib/CoderInfo.cpp
@@ -6,7 +6,7 @@
 //
 
 #define MAGICKCORE_IMPLEMENTATION  1
-#define MAGICK_PLUSPLUS_IMPLEMENTATION 1
+#define MAGICK_PLUSPLUS_IMPLEMENTATION  1
 
 #include "Magick++/Include.h"
 #include "Magick++/CoderInfo.h"
@@ -14,6 +14,26 @@
 
 using namespace std;
 
+// Default constructor
+Magick::CoderInfo::CoderInfo ( void )
+  : _name(),
+    _description(),
+    _isReadable(false),
+    _isWritable(false),
+    _isMultiFrame(false)
+{
+}
+
+// Copy constructor
+Magick::CoderInfo::CoderInfo ( const Magick::CoderInfo &coder_ )
+{
+  _name         = coder_._name;
+  _description  = coder_._description;
+  _isReadable   = coder_._isReadable;
+  _isWritable   = coder_._isWritable;
+  _isMultiFrame = coder_._isMultiFrame;
+}
+
 Magick::CoderInfo::CoderInfo ( const std::string &name_ )
   : _name(),
     _description(),
@@ -75,6 +95,21 @@
   return _isMultiFrame;
 }
 
+// Assignment operator
+Magick::CoderInfo& Magick::CoderInfo::operator= (const CoderInfo &coder_ )
+{
+  // If not being set to ourself
+  if (this != &coder_)
+    {
+      _name         = coder_._name;
+      _description  = coder_._description;
+      _isReadable   = coder_._isReadable;
+      _isWritable   = coder_._isWritable;
+      _isMultiFrame = coder_._isMultiFrame;
+    }
+  return *this;
+}
+
 // Construct from MagickCore::MagickInfo*
 Magick::CoderInfo::CoderInfo ( const MagickCore::MagickInfo *magickInfo_ )
   : _name(string(magickInfo_->name ? magickInfo_->name : "")),
@@ -85,4 +120,3 @@
 {
   // Nothing more to do
 }
-