diff --git a/lib/multi_exiftool/values.rb b/lib/multi_exiftool/values.rb
index <HASH>..<HASH> 100644
--- a/lib/multi_exiftool/values.rb
+++ b/lib/multi_exiftool/values.rb
@@ -1,5 +1,7 @@
 # coding: utf-8
 require 'date'
+require 'set'
+
 module MultiExiftool
 
   # Representing (tag, value) pairs of metadata.
@@ -7,9 +9,13 @@ module MultiExiftool
   # method_missing.
   class Values
 
+    attr_reader :tags
+
     def initialize values
       @values = {}
+      @tags = Set.new
       values.map do |tag,val|
+        @tags << tag
         val = val.kind_of?(Hash) ? Values.new(val) : val
         @values[Values.unify_tag(tag)] = val
       end
diff --git a/test/test_values.rb b/test/test_values.rb
index <HASH>..<HASH> 100644
--- a/test/test_values.rb
+++ b/test/test_values.rb
@@ -79,4 +79,14 @@ class TestValues < Test::Unit::TestCase
 
   end
 
+  context 'tags' do
+
+    test 'tags preserves the original tag names' do
+      hash = {'FNumber' => 8, 'Author' => 'janfri', 'E-MailAddress' => 'janfri26@gmail.com'}
+      @values = MultiExiftool::Values.new(hash)
+      assert_equal hash.keys, @values.tags.to_a
+    end
+
+  end
+
 end
New method Values#tags to get access to unmodified tag names.