diff --git a/dulwich/tests/compat/test_client.py b/dulwich/tests/compat/test_client.py
index f7c3930e..39e6d97c 100644
--- a/dulwich/tests/compat/test_client.py
+++ b/dulwich/tests/compat/test_client.py
@@ -531,6 +531,8 @@ class DulwichHttpClientTest(CompatTestCase, DulwichClientTestBase):
     min_git_version = (1, 7, 0, 2)
 
     def setUp(self):
+        if '__pypy__' in sys.modules:
+            self.skipTest('urllib3 not available for pypy in debian')
         CompatTestCase.setUp(self)
         DulwichClientTestBase.setUp(self)
         self._httpd = HTTPGitServer(("localhost", 0), self.gitroot)
diff --git a/dulwich/tests/test_client.py b/dulwich/tests/test_client.py
index 7d2c464b..01030f70 100644
--- a/dulwich/tests/test_client.py
+++ b/dulwich/tests/test_client.py
@@ -35,7 +35,8 @@ try:
 except ImportError:
     import urllib.parse as urlparse
 
-import urllib3
+if '__pypy__' not in sys.modules:
+    import urllib3
 
 import dulwich
 from dulwich import (
@@ -534,12 +535,20 @@ class TestGetTransportAndPath(TestCase):
         self.assertTrue(isinstance(c, SSHGitClient))
 
     def test_http(self):
+        if '__pypy__' in sys.modules:
+            self.skipTest('urllib3 not available for pypy in debian')
+
+
         url = 'https://github.com/jelmer/dulwich'
         c, path = get_transport_and_path(url)
         self.assertTrue(isinstance(c, HttpGitClient))
         self.assertEqual('/jelmer/dulwich', path)
 
     def test_http_auth(self):
+        if '__pypy__' in sys.modules:
+            self.skipTest('urllib3 not available for pypy in debian')
+
+
         url = 'https://user:passwd@github.com/jelmer/dulwich'
 
         c, path = get_transport_and_path(url)
@@ -550,6 +559,10 @@ class TestGetTransportAndPath(TestCase):
         self.assertEqual('passwd', c._password)
 
     def test_http_no_auth(self):
+        if '__pypy__' in sys.modules:
+            self.skipTest('urllib3 not available for pypy in debian')
+
+
         url = 'https://github.com/jelmer/dulwich'
 
         c, path = get_transport_and_path(url)
@@ -632,6 +645,9 @@ class TestGetTransportAndPathFromUrl(TestCase):
             'prospero://bar/baz')
 
     def test_http(self):
+        if '__pypy__' in sys.modules:
+            self.skipTest('urllib3 not available for pypy in debian')
+
         url = 'https://github.com/jelmer/dulwich'
         c, path = get_transport_and_path_from_url(url)
         self.assertTrue(isinstance(c, HttpGitClient))
@@ -863,6 +879,11 @@ class LocalGitClientTests(TestCase):
 
 class HttpGitClientTests(TestCase):
 
+    def setUp(self):
+        super(HttpGitClientTests, self).setUp()
+        if '__pypy__' in sys.modules:
+            self.skipTest('urllib3 not available for pypy in debian')
+
     @staticmethod
     def b64encode(s):
         """Python 2/3 compatible Base64 encoder. Returns string."""
@@ -961,12 +982,18 @@ class TCPGitClientTests(TestCase):
 
 class DefaultUrllib3ManagerTest(TestCase):
 
+    def setUp(self):
+        super(DefaultUrllib3ManagerTest, self).setUp()
+        if '__pypy__' in sys.modules:
+            self.skipTest('urllib3 not available for pypy in debian')
+
     def test_no_config(self):
         manager = default_urllib3_manager(config=None)
         self.assertEqual(manager.connection_pool_kw['cert_reqs'],
                          'CERT_REQUIRED')
 
     def test_config_no_proxy(self):
+
         manager = default_urllib3_manager(config=ConfigDict())
         self.assertNotIsInstance(manager, urllib3.ProxyManager)
 
