diff --git a/Library/Homebrew/cmd/bottle.rb b/Library/Homebrew/cmd/bottle.rb
index 954f6eb780eec5ffec96558cb8d09b24b45b6529..e582620bbd17b1c0174f074b6ea51ea08ca59867 100644
--- a/Library/Homebrew/cmd/bottle.rb
+++ b/Library/Homebrew/cmd/bottle.rb
@@ -125,7 +125,7 @@ module Homebrew
       bottle_revision = max ? max + 1 : 0
     end
 
-    filename = Bottle::Filename.new(f.name, f.pkg_version, bottle_tag, bottle_revision)
+    filename = Bottle::Filename.create(f, bottle_tag, bottle_revision)
 
     if bottle_filename_formula_name(filename).empty?
       return ofail "Add a new regex to bottle_version.rb to parse #{f.version} from #{filename}"
diff --git a/Library/Homebrew/software_spec.rb b/Library/Homebrew/software_spec.rb
index 9a9db69fc7d3c977939785570ad434c10d830f6e..7b8a09e46fdeb87a0b6e99e57720dba20cfeb43c 100644
--- a/Library/Homebrew/software_spec.rb
+++ b/Library/Homebrew/software_spec.rb
@@ -116,6 +116,10 @@ class Bottle
   class Filename
     attr_reader :name, :version, :tag, :revision
 
+    def self.create(formula, tag, revision)
+      new(formula.name, formula.pkg_version, tag, revision)
+    end
+
     def initialize(name, version, tag, revision)
       @name = name
       @version = version
@@ -152,7 +156,7 @@ class Bottle
 
     checksum, tag = spec.checksum_for(bottle_tag)
 
-    filename = Filename.new(formula.name, formula.pkg_version, tag, spec.revision)
+    filename = Filename.create(formula, tag, spec.revision)
     @resource.url = build_url(spec.root_url, filename)
     @resource.download_strategy = CurlBottleDownloadStrategy
     @resource.version = formula.pkg_version
diff --git a/Library/Homebrew/test/test_bottle_filename.rb b/Library/Homebrew/test/test_bottle_filename.rb
index cad538be91e53903e4e47703e20d105dd2cc50c7..0c5fdec1a45db3f8b9a517ddd6482bf6bb016f7f 100644
--- a/Library/Homebrew/test/test_bottle_filename.rb
+++ b/Library/Homebrew/test/test_bottle_filename.rb
@@ -1,4 +1,5 @@
 require "testing_env"
+require "formula"
 require "software_spec"
 
 class BottleFilenameTests < Homebrew::TestCase
@@ -17,4 +18,14 @@ class BottleFilenameTests < Homebrew::TestCase
     assert_equal expected, fn(0).to_s
     assert_equal expected, fn(0).to_str
   end
+
+  def test_create
+    f = formula {
+      url "https://example.com/foo.tar.gz"
+      version "1.0"
+    }
+
+    expected = "formula_name-1.0.tag.bottle.tar.gz"
+    assert_equal expected, Bottle::Filename.create(f, :tag, 0).to_s
+  end
 end