diff --git a/var/spack/repos/builtin/packages/express/gcc-6.patch b/var/spack/repos/builtin/packages/express/gcc-6.patch
new file mode 100644
index 0000000000000000000000000000000000000000..ed1fb6b7100c96c294b221c2fd1e12ab2ba154dc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/express/gcc-6.patch
@@ -0,0 +1,21 @@
+Description: Fix compilation with gcc-6
+Author: Gert Wollny <gw.fossdev@gmail.com>
+Bug-Debian: https://bugs.debian.org/811859
+
+--- a/src/targets.cpp
++++ b/src/targets.cpp
+@@ -113,12 +113,12 @@
+
+   double ll = LOG_1;
+   double tot_mass = mass(with_pseudo);
+-  double tot_eff_len = cached_effective_length(lib.bias_table);
++  double tot_eff_len = cached_effective_length(static_cast<bool>(lib.bias_table));
+   if (neighbors) {
+     foreach (const Target* neighbor, *neighbors) {
+       tot_mass = log_add(tot_mass, neighbor->mass(with_pseudo));
+       tot_eff_len = log_add(tot_eff_len,
+-                            neighbor->cached_effective_length(lib.bias_table));
++                            neighbor->cached_effective_length(static_cast<bool>(lib.bias_table)));
+     }
+   }
+   ll += tot_mass - tot_eff_len;
diff --git a/var/spack/repos/builtin/packages/express/package.py b/var/spack/repos/builtin/packages/express/package.py
index cfb262d31313dd50eda61624320fd26017c03335..df86e33233386af610ff69d0438ac67dbf0563b3 100644
--- a/var/spack/repos/builtin/packages/express/package.py
+++ b/var/spack/repos/builtin/packages/express/package.py
@@ -13,15 +13,20 @@ class Express(CMakePackage):
        target sequences from sampled subsequences."""
 
     homepage = "http://bio.math.berkeley.edu/eXpress/"
-    git      = "https://github.com/adarob/eXpress.git"
+    url      = "https://github.com/adarob/eXpress/archive/1.5.2.zip"
 
-    version('2015-11-29', commit='f845cab2c7f2d9247b35143e4aa05869cfb10e79')
+    # 1.5.1 used to be known as 2015-11-29 (same commit), but they've
+    # added tags, so lets use 'em
+    version('1.5.2', sha256='25a63cca3dac6bd0daf04d2f0b2275e47d2190c90522bd231b1d7a875a59a52e')
+    version('1.5.1', sha256='fa3522de9cc25f1ede22fa196928912a6da2a2038681911115ec3e4da3d61293')
 
     depends_on('boost')
     depends_on('bamtools')
     depends_on('zlib')
 
-    conflicts('%gcc@6.0.0:', when='@2015-11-29')
+    # patch from the debian package repo:
+    # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=811859
+    patch('gcc-6.patch', when='%gcc@6.0.0:')
 
     def patch(self):
         with working_dir('src'):
@@ -32,7 +37,7 @@ def patch(self):
                     edit.filter('#include <api', '#include <%s' % self.spec[
                                 'bamtools'].prefix.include.bamtools.api)
             edit = FileFilter('CMakeLists.txt')
-            edit.filter('\${CMAKE_CURRENT_SOURCE_DIR}/../bamtools/lib/'
+            edit.filter(r'\${CMAKE_CURRENT_SOURCE_DIR}/../bamtools/lib/'
                         'libbamtools.a', '%s' % self.spec['bamtools'].libs)
 
     def setup_environment(self, spack_env, run_env):