diff --git a/setup.py b/setup.py
index 3dd2bd6..59cff8d 100644
--- a/setup.py
+++ b/setup.py
@@ -177,6 +177,7 @@
         '--contact',
         '--contact-email',
         '--description',
+        '--egg-base',
         '--fullname',
         '--help-commands',
         '--keywords',
@@ -198,9 +199,31 @@
         'sdist',
         'upload',
     )
-    if all((arg in no_setup_requires_arguments) or
-           all(('-' + char) in no_setup_requires_arguments for char in arg[1:])
-           for arg in argv[1:]):
+    def is_short_option(argument):
+        """Check whether a command line argument is a short option."""
+        return len(argument) >= 2 and argument[0] == '-' and argument[1] != '-'
+    def expand_short_options(argument):
+        """Expand combined short options into canonical short options."""
+        return ('-' + char for char in argument[1:])
+    def argument_without_setup_requirements(argv, i):
+        """Check whether a command line argument needs setup requirements."""
+        if argv[i] in no_setup_requires_arguments:
+            # Simple case: An argument which is either an option or a command
+            # which doesn't need setup requirements.
+            return True
+        elif is_short_option(argv[i]) and all(option in
+                no_setup_requires_arguments for option in
+                expand_short_options(argv[i])):
+            # Not so simple case: Combined short options none of which need
+            # setup requirements.
+            return True
+        elif argv[i - 1 : i] == ['--egg-base']:
+            # Tricky case: --egg-info takes an argument which should not make
+            # us use setup_requires (defeating the purpose of this code).
+            return True
+        else:
+            return False
+    if all(argument_without_setup_requirements(argv, i) for i in range(1, len(argv))):
         return {
             "cmdclass": {
                 "build": DummyCFFIBuild,
