diff --git a/lib/spack/spack/util/compression.py b/lib/spack/spack/util/compression.py
index a67576bd5083a3150c1381f98803e7dfc92b47dd..b4db266fd3a9199ad95228085df0c3530a61e4f4 100644
--- a/lib/spack/spack/util/compression.py
+++ b/lib/spack/spack/util/compression.py
@@ -23,6 +23,7 @@
 # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 ##############################################################################
 import re
+import os
 from itertools import product
 from spack.util.executable import which
 
@@ -60,6 +61,11 @@ def strip_extension(path):
 
 def extension(path):
     """Get the archive extension for a path."""
+
+    # Strip sourceforge suffix.
+    if re.search(r'((?:sourceforge.net|sf.net)/.*)/download$', path):
+        path = os.path.dirname(path)
+
     for type in ALLOWED_ARCHIVE_TYPES:
         suffix = r'\.%s$' % type
         if re.search(suffix, path):