diff --git a/lib/odf/hyperlink.rb b/lib/odf/hyperlink.rb
index <HASH>..<HASH> 100644
--- a/lib/odf/hyperlink.rb
+++ b/lib/odf/hyperlink.rb
@@ -20,9 +20,9 @@ require 'builder'
 
 module ODF
   class Hyperlink
-    def initialize(text, opts = {})
+    def initialize(text, second = {})
       @content = text
-      @href = opts[:href]
+      @href = second.instance_of?(Hash) ? second[:href] : second
     end
 
     def xml
diff --git a/spec/hyperlink_spec.rb b/spec/hyperlink_spec.rb
index <HASH>..<HASH> 100644
--- a/spec/hyperlink_spec.rb
+++ b/spec/hyperlink_spec.rb
@@ -28,5 +28,13 @@ describe ODF::Hyperlink do
     link.innerHTML.should == 'link somewhere'
     link['xlink:href'].should == 'http://www.example.org/'
   end
+
+  it "should accept ref both in second argument as in argument hash" do
+    Hpricot(ODF::Hyperlink.new('link somewhere', :href => 'http://www.example.org/').xml).
+      at('text:a')['xlink:href'].should == 'http://www.example.org/'
+
+    Hpricot(ODF::Hyperlink.new('link somewhere', 'http://www.example.org/').xml).
+      at('text:a')['xlink:href'].should == 'http://www.example.org/'
+  end
 end
Accept link ref purely in second argument too

A little more input liberality