diff --git a/pipdeps/pipdeps.py b/pipdeps/pipdeps.py
index 40ec1898a3bb3beeb7a75cf41308687e4fa3bd92..3dd40d191c5eb8bb91a4d72986df0edd43c3721b 100644
--- a/pipdeps/pipdeps.py
+++ b/pipdeps/pipdeps.py
@@ -61,12 +61,6 @@ def check_requires_python(pyver, requires_python):
             return True
     return False
 
-def upgrade_pip():
-    """
-    pip install --upgrade pip
-    """
-    subprocess.check_call(["pip", "install", "--upgrade", "pip"], stderr=subprocess.STDOUT)
-
 def upgrade_package(package, versions):
     """
     pip install --upgrade "<package><versions>"
@@ -196,10 +190,14 @@ def main():
                 print "There is nothing to upgrade."
                 sys.exit(0)
 
+        for index, pkg  in enumerate(upgradable_packages):
+            if pkg['package'] == 'pip':
+                package = upgradable_packages.pop(index)
+                upgrade_package(package['package'], package['upgradable_version'])
+
         try:
             package = upgradable_packages.pop(-1)
         except IndexError:
-            upgrade_pip()
             break
         upgrade_package(package['package'], package['upgradable_version'])