diff --git a/Library/Homebrew/dev-cmd/bump-formula-pr.rb b/Library/Homebrew/dev-cmd/bump-formula-pr.rb
index 68bf32d0bfff462b9f6ea303214c2bf0dfc91662..ea2daf1c42565507b4c40e6cdb0b18af9c89a1b0 100644
--- a/Library/Homebrew/dev-cmd/bump-formula-pr.rb
+++ b/Library/Homebrew/dev-cmd/bump-formula-pr.rb
@@ -78,8 +78,43 @@ module Homebrew
     end
   end
 
+  def fetch_pull_requests(formula)
+    GitHub.issues_for_formula(formula.name, tap: formula.tap).select do |pr|
+      pr["html_url"].include?("/pull/")
+    end
+  rescue GitHub::RateLimitExceededError => e
+    opoo e.message
+    []
+  end
+
+  def check_for_duplicate_pull_requests(formula)
+    pull_requests = fetch_pull_requests(formula)
+    return unless pull_requests && !pull_requests.empty?
+    duplicates_message = <<-EOS.undent
+      These open pull requests may be duplicates:
+      #{pull_requests.map { |pr| "#{pr["title"]} #{pr["html_url"]}" }.join("\n")}
+    EOS
+    error_message = "Duplicate PRs should not be opened. Use --force to override this error."
+    if ARGV.force? && !ARGV.flag?("--quiet")
+      opoo duplicates_message
+    elsif !ARGV.force? && ARGV.flag?("--quiet")
+      odie error_message
+    elsif !ARGV.force?
+      odie <<-EOS.undent
+        #{duplicates_message.chomp}
+        #{error_message}
+      EOS
+    end
+  end
+
   def bump_formula_pr
     formula = ARGV.formulae.first
+
+    if formula
+      check_for_duplicate_pull_requests(formula)
+      checked_for_duplicates = true
+    end
+
     new_url = ARGV.value("url")
     if new_url && !formula
       is_devel = ARGV.include?("--devel")
@@ -101,6 +136,8 @@ module Homebrew
     end
     odie "No formula found!" unless formula
 
+    check_for_duplicate_pull_requests(formula) unless checked_for_duplicates
+
     requested_spec, formula_spec = if ARGV.include?("--devel")
       devel_message = " (devel)"
       [:devel, formula.devel]