Index: /ruby/trunk/lib/models/rm/common/change_control.rb
===================================================================
--- /ruby/trunk/lib/models/rm/common/change_control.rb	(revision 158)
+++ /ruby/trunk/lib/models/rm/common/change_control.rb	(revision 159)
@@ -10,8 +10,8 @@
           attr_reader :uid, :versions, :audit
 
-          def initialize(uid, versions, audit)
-            self.uid = uid
-            self.versions = versions
-            self.audit = audit
+          def initialize(args = { })
+            self.uid = args[:uid]
+            self.versions = args[:versions]
+            self.audit = args[:audit]
           end
 
@@ -108,4 +108,22 @@
 
         class Imported_Version < Version
+          attr_reader :item
+
+          def initialize(args = { })
+            self.item = args[:item]
+            super(:uid => @item.uid,
+                  :preceding_version_uid => @item.preceding_version_uid,
+                  :data => @item.data, :commit_audit=> args[:commit_audit],
+                  :commit_audit => args[:commit_audit],
+                  :contribution => args[:contribution],
+                  :lifecycle_state => @item.lifecycle_state,
+                  :signature => args[:signature])
+                  
+          end
+
+          def item=(item)
+            raise ArgumentError, 'item is mandatory' if item.nil?
+            @item = item
+          end
         end
 
@@ -134,5 +152,6 @@
 
           def is_merged?
-
+# Java implementation has is_merged attribute, Eiffel implementation does
+# nothing
           end
         end
Index: /ruby/trunk/lib/models/tests/rm/test_common.rb
===================================================================
--- /ruby/trunk/lib/models/tests/rm/test_common.rb	(revision 158)
+++ /ruby/trunk/lib/models/tests/rm/test_common.rb	(revision 159)
@@ -351,4 +351,19 @@
                                                :data => 'data',
                                                :lifecycle_state => dv_coded_text)}
+    audit_details = Audit_Details.new(:system_id => 'CASPER',
+                                      :committer => party_proxy,
+                                      :time_committed => dv_date_time,
+                                      :change_type => dv_coded_text,
+                                      :description => 'for contribution')
+    object_ref = Object_Ref.new('unknown', 'PARTY', object_id)
+    assert_nothing_raised(Exception){
+      @imported_version = Imported_Version.new(:item => @original_version,
+                                               :commit_audit => audit_details,
+                                               :contribution => object_ref,
+                                               :signature => 'import test')}
+    assert_nothing_raised(Exception){
+      @contribution = Contribution.new(:uid => hier_object_id,
+                                       :versions => Set[object_ref],
+                                       :audit => audit_details)}
   end
 
@@ -356,5 +371,6 @@
     assert_instance_of OpenEHR::RM::Common::Change_Control::Version, @version
     assert_instance_of Original_Version, @original_version
-#    assert_instance_of OpenEHR::RM::Common::Change_Control::Contribution @contribution
+    assert_instance_of Imported_Version, @imported_version
+    assert_instance_of OpenEHR::RM::Common::Change_Control::Contribution, @contribution
   end
 
@@ -377,6 +393,18 @@
   end
 
+  def test_imported_version
+    assert_equal 'import test', @imported_version.signature
+    assert_equal 'MNO::PQR::7.8.9', @imported_version.item.uid.value
+    assert_equal 'CASPER', @imported_version.commit_audit.system_id
+    assert_equal 'unknown', @imported_version.contribution.namespace
+    assert_equal 'STU::VWX::1.2.3', @imported_version.preceding_version_uid.value
+    assert_equal '532', @imported_version.lifecycle_state.defining_code.code_string
+    
+  end
+
   def test_contribution
-#    assert_equal @contribution.uid
+    assert_equal 'ABC', @contribution.uid.value
+    assert_equal 'PARTY', @contribution.versions.to_a[0].type
+    assert_equal 'for contribution', @contribution.audit.description
   end
 end
