diff --git a/.travis.yml b/.travis.yml
index 93ed508..69b8e28 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,5 @@
 language: ruby
 cache: bundler
-sudo: false
 rvm:
   - 2.4.6
   - 2.5.5
@@ -11,11 +10,11 @@ env:
   - RAILS_VERSION="~> 5.0.0"
   - RAILS_VERSION="~> 5.1.0"
   - RAILS_VERSION="~> 5.2.0"
-  - RAILS_VERSION="~> 6.0.0.beta1"
+  - RAILS_VERSION="~> 6.0.0.rc1"
 matrix:
   exclude:
     - rvm: 2.4.6
-      env: RAILS_VERSION="~> 6.0.0.beta1"
+      env: RAILS_VERSION="~> 6.0.0.rc1"
     - rvm: 2.6.3
       env: RAILS_VERSION="~> 4.2.0"
   allow_failures:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 8212d41..0c504ad 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+## Next Release
+
+## 2.1.1
+
+* Avoid -I rubylibdir with default-gem bundler
+* Start server process in directory where command was called
+
 ## 2.1.0
 
 * Add explicit support for Rails 6 (no changes were needed)
@@ -6,6 +13,10 @@
 * Preserve comments right after the shebang line which might include magic comments such as `frozen_string_literal: true`
 * Fix binstub failures when Bundler's `BUNDLE_APP_CONFIG` environment variable is present (#545)
 * Properly suspend and resume on ctrl-z TSTP and CONT (#361)
+* Added support for `gems.rb` with Gemfile file name detection using Bundler
+  method (#524)
+
+  *Michał Zalewski*, *JuPlutonic*
 
 ## 2.0.2
 
diff --git a/README.md b/README.md
index 6a056d7..2ec6632 100644
--- a/README.md
+++ b/README.md
@@ -232,6 +232,7 @@ You can add these to your Gemfile for additional commands:
 * [spring-commands-testunit](https://github.com/jonleighton/spring-commands-testunit) - useful for
   running `Test::Unit` tests on Rails 3, since only Rails 4 allows you
   to use `rake test path/to/test` to run a particular test/directory.
+* [spring-commands-parallel-tests](https://github.com/DocSpring/spring-commands-parallel-tests) - Adds the `parallel_*` commands from [`parallel_tests`](https://github.com/grosser/parallel_tests).
 * [spring-commands-teaspoon](https://github.com/alejandrobabio/spring-commands-teaspoon.git)
 * [spring-commands-m](https://github.com/gabrieljoelc/spring-commands-m.git)
 * [spring-commands-rubocop](https://github.com/p0deje/spring-commands-rubocop)
diff --git a/debian/changelog b/debian/changelog
index 08ae9c3..d032191 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+ruby-spring (2.1.1-1) UNRELEASED; urgency=low
+
+  * New upstream release.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Sat, 29 May 2021 01:22:19 -0000
+
 ruby-spring (2.1.0-2) unstable; urgency=medium
 
   [ Debian Janitor ]
diff --git a/debian/patches/adjust-Gemfile.patch b/debian/patches/adjust-Gemfile.patch
index 6c2653b..2ee81b5 100644
--- a/debian/patches/adjust-Gemfile.patch
+++ b/debian/patches/adjust-Gemfile.patch
@@ -2,8 +2,10 @@ This patch adjusts the Gemfile.
 Author: Pirate Praveen <praveen@debian.org>
 ---
 
---- a/Gemfile
-+++ b/Gemfile
+Index: ruby-spring/Gemfile
+===================================================================
+--- ruby-spring.orig/Gemfile
++++ ruby-spring/Gemfile
 @@ -1,7 +1,10 @@
  source 'https://rubygems.org'
  
diff --git a/debian/patches/fix-version.patch b/debian/patches/fix-version.patch
index e9b68c8..6ea10ae 100644
--- a/debian/patches/fix-version.patch
+++ b/debian/patches/fix-version.patch
@@ -2,8 +2,10 @@ This patch fixes version.
 Author: Pirate Praveen <praveen@debian.org>
 ---
 
---- a/spring.gemspec
-+++ b/spring.gemspec
+Index: ruby-spring/spring.gemspec
+===================================================================
+--- ruby-spring.orig/spring.gemspec
++++ ruby-spring/spring.gemspec
 @@ -1,4 +1,5 @@
 -require './lib/spring/version'
 +$LOAD_PATH.unshift(File.expand_path('lib', File.dirname(__FILE__)))
diff --git a/debian/patches/no-bump.patch b/debian/patches/no-bump.patch
index 17491c1..f6590ed 100644
--- a/debian/patches/no-bump.patch
+++ b/debian/patches/no-bump.patch
@@ -2,9 +2,11 @@ Description: do not declare dev dependency on bump (not packaged)
 Author: Cédric Boutillier <boutil@debian.org>
 Last-Update: 2019-01-17
 
---- a/spring.gemspec
-+++ b/spring.gemspec
-@@ -16,6 +16,5 @@
+Index: ruby-spring/spring.gemspec
+===================================================================
+--- ruby-spring.orig/spring.gemspec
++++ ruby-spring/spring.gemspec
+@@ -16,6 +16,5 @@ Gem::Specification.new do |gem|
    gem.required_ruby_version = ">= 2.4.0"
  
    gem.add_development_dependency 'rake'
diff --git a/lib/spring/application.rb b/lib/spring/application.rb
index f072be7..2332bd9 100644
--- a/lib/spring/application.rb
+++ b/lib/spring/application.rb
@@ -172,6 +172,11 @@ module Spring
         end
       end
 
+      # Ensure we boot the process in the directory the command was called from,
+      # not from the directory Spring started in
+      original_dir = Dir.pwd
+      Dir.chdir(env['PWD'] || original_dir)
+
       pid = fork {
         Process.setsid
         IGNORE_SIGNALS.each { |sig| trap(sig, "DEFAULT") }
@@ -237,6 +242,7 @@ module Spring
       # (i.e. to prevent `spring rake -T | grep db` from hanging forever),
       # even when exception is raised before forking (i.e. preloading).
       reset_streams
+      Dir.chdir(original_dir)
     end
 
     def terminate
diff --git a/lib/spring/application_manager.rb b/lib/spring/application_manager.rb
index d9d1c91..c759fba 100644
--- a/lib/spring/application_manager.rb
+++ b/lib/spring/application_manager.rb
@@ -94,6 +94,7 @@ module Spring
       @child, child_socket = UNIXSocket.pair
 
       Bundler.with_original_env do
+        bundler_dir = File.expand_path("../..", $LOADED_FEATURES.grep(/bundler\/setup\.rb$/).first)
         @pid = Process.spawn(
           {
             "RAILS_ENV"           => app_env,
@@ -102,7 +103,7 @@ module Spring
             "SPRING_PRELOAD"      => preload ? "1" : "0"
           },
           "ruby",
-          "-I", File.expand_path("../..", $LOADED_FEATURES.grep(/bundler\/setup\.rb$/).first),
+          *(bundler_dir != RbConfig::CONFIG["rubylibdir"] ? ["-I", bundler_dir] : []),
           "-I", File.expand_path("../..", __FILE__),
           "-e", "require 'spring/application/boot'",
           3 => child_socket,
diff --git a/lib/spring/configuration.rb b/lib/spring/configuration.rb
index 103f088..eba8e9a 100644
--- a/lib/spring/configuration.rb
+++ b/lib/spring/configuration.rb
@@ -5,7 +5,11 @@ module Spring
     attr_accessor :application_root, :quiet
 
     def gemfile
-      ENV['BUNDLE_GEMFILE'] || "Gemfile"
+      if /\s1.9.[0-9]/ ===  Bundler.ruby_scope.gsub(/[\/\s]+/,'')
+        ENV["BUNDLE_GEMFILE"] || "Gemfile"
+      else
+        Bundler.default_gemfile
+      end
     end
 
     def after_fork_callbacks
diff --git a/lib/spring/version.rb b/lib/spring/version.rb
index 3ff8b1d..b82db2b 100644
--- a/lib/spring/version.rb
+++ b/lib/spring/version.rb
@@ -1,3 +1,3 @@
 module Spring
-  VERSION = "2.1.0"
+  VERSION = "2.1.1"
 end
diff --git a/test/support/acceptance_test.rb b/test/support/acceptance_test.rb
index 94f618d..889d2c9 100644
--- a/test/support/acceptance_test.rb
+++ b/test/support/acceptance_test.rb
@@ -503,6 +503,20 @@ module Spring
         assert_failure %(bin/rails runner 'require "sqlite3"'), stderr: "sqlite3"
       end
 
+      if RUBY_VERSION >= "2.0.0"
+        test "changing the gems.rb works" do
+          FileUtils.mv(app.gemfile, app.gems_rb)
+          FileUtils.mv(app.gemfile_lock, app.gems_locked)
+
+          assert_success %(bin/rails runner 'require "sqlite3"')
+
+          File.write(app.gems_rb, app.gems_rb.read.sub(%{gem 'sqlite3'}, %{# gem 'sqlite3'}))
+          app.await_reload
+
+          assert_failure %(bin/rails runner 'require "sqlite3"'), stderr: "sqlite3"
+        end
+      end
+
       test "changing the Gemfile works when Spring calls into itself" do
         File.write(app.path("script.rb"), <<-RUBY.strip_heredoc)
           gemfile = Rails.root.join("Gemfile")
@@ -517,6 +531,25 @@ module Spring
         assert_success [%(bin/rails runner 'load Rails.root.join("script.rb")'), timeout: 60]
       end
 
+      if RUBY_VERSION >= "2.0.0"
+        test "changing the gems.rb works when spring calls into itself" do
+          FileUtils.mv(app.gemfile, app.gems_rb)
+          FileUtils.mv(app.gemfile_lock, app.gems_locked)
+
+          File.write(app.path("script.rb"), <<-RUBY.strip_heredoc)
+            gemfile = Rails.root.join("gems.rb")
+            File.write(gemfile, "\#{gemfile.read}gem 'text'\\n")
+            Bundler.with_clean_env do
+              system(#{app.env.inspect}, "bundle install")
+            end
+            output = `\#{Rails.root.join('bin/rails')} runner 'require "text"; puts "done";'`
+            exit output.include? "done\n"
+          RUBY
+
+          assert_success [%(bin/rails runner 'load Rails.root.join("script.rb")'), timeout: 60]
+        end
+      end
+
       test "changing the environment between runs" do
         File.write(app.application_config, "#{app.application_config.read}\nENV['BAR'] = 'bar'")
 
diff --git a/test/support/application.rb b/test/support/application.rb
index 9a00618..010442b 100644
--- a/test/support/application.rb
+++ b/test/support/application.rb
@@ -48,6 +48,18 @@ module Spring
         path "Gemfile"
       end
 
+      def gemfile_lock
+        path "Gemfile.lock"
+      end
+
+      def gems_rb
+        path "gems.rb"
+      end
+
+      def gems_locked
+        path "gems.locked"
+      end
+
       def gem_home
         path "../gems/#{RUBY_VERSION}"
       end