diff --git a/Gemfile.lock b/Gemfile.lock
index c29ba6538af482abddac86568fb11495b5386a4d..a95c62075363fc4cf455228f9a15b0098c825d08 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -3,13 +3,15 @@ PATH
   specs:
     nickserver (0.9.0)
       http
+      nio4r (~> 1.2)
       reel
 
 GEM
   remote: https://rubygems.org/
   specs:
-    addressable (2.4.0)
-    byebug (9.0.5)
+    addressable (2.5.1)
+      public_suffix (~> 2.0, >= 2.0.2)
+    byebug (9.0.6)
     celluloid (0.17.3)
       celluloid-essentials
       celluloid-extras
@@ -31,33 +33,34 @@ GEM
       timers (>= 4.1.1)
     celluloid-supervision (0.20.6)
       timers (>= 4.1.1)
-    domain_name (0.5.20160826)
+    domain_name (0.5.20170404)
       unf (>= 0.0.5, < 1.0.0)
     hitimes (1.2.4)
-    http (2.0.3)
+    http (2.2.2)
       addressable (~> 2.3)
       http-cookie (~> 1.0)
       http-form_data (~> 1.0.1)
       http_parser.rb (~> 0.6.0)
-    http-cookie (1.0.2)
+    http-cookie (1.0.3)
       domain_name (~> 0.5)
-    http-form_data (1.0.1)
+    http-form_data (1.0.2)
     http_parser.rb (0.6.0)
-    minitest (5.9.0)
+    minitest (5.10.2)
     nio4r (1.2.1)
-    rake (11.2.2)
+    public_suffix (2.0.5)
+    rake (12.0.0)
     reel (0.6.1)
       celluloid (>= 0.15.1)
       celluloid-io (>= 0.15.0)
       http (>= 0.6.0.pre)
       http_parser.rb (>= 0.6.0)
       websocket-driver (>= 0.5.1)
-    timers (4.1.1)
+    timers (4.1.2)
       hitimes
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.7.2)
-    websocket-driver (0.6.4)
+    unf_ext (0.0.7.4)
+    websocket-driver (0.6.5)
       websocket-extensions (>= 0.1.0)
     websocket-extensions (0.1.2)
 
@@ -71,4 +74,4 @@ DEPENDENCIES
   rake
 
 BUNDLED WITH
-   1.12.5
+   1.14.6
diff --git a/nickserver.gemspec b/nickserver.gemspec
index ac20a3f1c4062bf2514e0dbdb01ea05c890749cf..af1ef97121b9055cad61b3123d7d27b91473dbcb 100644
--- a/nickserver.gemspec
+++ b/nickserver.gemspec
@@ -16,10 +16,13 @@ Gem::Specification.new do |gem|
   gem.executables   = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
   gem.test_files    = gem.files.grep(%r{^(test|spec|features)/})
   gem.require_paths = ["lib"]
+  gem.required_ruby_version = '~> 2.1'
 
   gem.add_development_dependency 'rake'
   gem.add_development_dependency 'minitest'
 
   gem.add_dependency 'reel'
   gem.add_dependency 'http'
+  # newer versions of nio4r do not work with ruby 2.1
+  gem.add_dependency 'nio4r', '~> 1.2'
 end
diff --git a/test/functional/bin_test.rb b/test/functional/bin_test.rb
index ef2d74e398af8ee4ae9ced8fa31492ec108131a4..3e2774cc25efec357cbca24e0c79e3254a978763 100644
--- a/test/functional/bin_test.rb
+++ b/test/functional/bin_test.rb
@@ -1,6 +1,5 @@
 require 'minitest/autorun'
 require 'minitest/pride'
-require 'minitest/hell'
 
 class BinTest < Minitest::Test
 
diff --git a/test/test_helper.rb b/test/test_helper.rb
index 6bf38548c30e3fee1abb9ebc43955f32f7f6c3b0..06e8e78e5f065ac8213b033de0dc4ee5a93560f1 100644
--- a/test/test_helper.rb
+++ b/test/test_helper.rb
@@ -6,7 +6,6 @@ require 'bundler/setup'
 require 'minitest/autorun'
 require 'celluloid/test'
 require 'minitest/pride'
-require 'minitest/hell'
 
 require 'nickserver/config'
 
diff --git a/test/unit/request_test.rb b/test/unit/request_test.rb
index 698a275bc9f6aaf38e196dc686df6319aa2c6509..eee01c365959ce8ea4d0e1477b7d357c8be51b12 100644
--- a/test/unit/request_test.rb
+++ b/test/unit/request_test.rb
@@ -10,7 +10,7 @@ class Nickserver::RequestTest < Minitest::Test
 
   def test_blank_email
     request = request_with_params
-    assert_equal nil, request.email
+    assert_nil request.email
   end
 
   def test_fingerprint