diff --git a/var/spack/packages/atlas/package.py b/var/spack/packages/atlas/package.py
index 255f22d666a84e26e92bf011c7ab6bdf6da01005..fc683363a70dc6217fd98b64271dce26e5d0a223 100644
--- a/var/spack/packages/atlas/package.py
+++ b/var/spack/packages/atlas/package.py
@@ -12,13 +12,17 @@ class Atlas(Package):
     LAPACK library.
     """
     homepage = "http://math-atlas.sourceforge.net/"
-    url      = "http://downloads.sourceforge.net/project/math-atlas/Stable/3.10.2/atlas3.10.2.tar.bz2"
 
-    # TODO: make this provide BLAS once we have the ability to prefer dependencies.
-    # TODO: until then netlib-blas will be the default (and only) blas
+    version('3.11.34', '0b6c5389c095c4c8785fd0f724ec6825',
+            url='http://sourceforge.net/projects/math-atlas/files/Developer%20%28unstable%29/3.11.34/atlas3.11.34.tar.bz2/download')
+    version('3.10.2', 'a4e21f343dec8f22e7415e339f09f6da',
+            url='http://downloads.sourceforge.net/project/math-atlas/Stable/3.10.2/atlas3.10.2.tar.bz2')
+
+    # TODO: make this provide BLAS once it works better.  Create a way
+    # TODO: to mark "beta" packages and require explicit invocation.
+
     # provides('blas')
 
-    version('3.10.2', 'a4e21f343dec8f22e7415e339f09f6da')
 
     def patch(self):
         # Disable thraed check.  LLNL's environment does not allow
@@ -29,13 +33,25 @@ def patch(self):
         # TODO: investigate a better way to add the check back in
         # TODO: using, say, MSRs.  Or move this to a variant.
 
+    @when('@:3.10')
+    def install(self, spec, prefix):
+        with working_dir('ATLAS-Build', create=True):
+            configure = Executable('../configure')
+            configure('--prefix=%s' % prefix, '-C', 'ic', 'cc', '-C', 'if', 'f77', "--dylibs")
+            make()
+            make('check')
+            make('ptcheck')
+            make('time')
+            make("install")
+
+
     def install(self, spec, prefix):
         with working_dir('ATLAS-Build', create=True):
-            self.module.configure = Executable('../configure')
-            configure('--prefix=%s' % prefix,
-                      '-C', 'ic', 'cc',
-                      '-C', 'if', 'f77',
-                      "--dylibs")
+            configure = Executable('../configure')
+            configure('--incdir=%s' % prefix.include,
+                      '--libdir=%s' % prefix.lib,
+                      '--cc=cc',
+                      "--shared")
 
             make()
             make('check')
diff --git a/var/spack/packages/netlib-blas/package.py b/var/spack/packages/netlib-blas/package.py
index ce8fc1eef446620f81d1f2654c139f5af48a4043..0a6cdb04423c709f5693a93220b586960aff267c 100644
--- a/var/spack/packages/netlib-blas/package.py
+++ b/var/spack/packages/netlib-blas/package.py
@@ -1,4 +1,6 @@
 from spack import *
+import os
+
 
 class NetlibBlas(Package):
     """Netlib reference BLAS"""
@@ -13,8 +15,16 @@ class NetlibBlas(Package):
     # Doesn't always build correctly in parallel
     parallel = False
 
+    def patch(self):
+        os.symlink('make.inc.example', 'make.inc')
+
+        mf = FileFilter('make.inc')
+        mf.filter('^FORTRAN.*', 'FORTRAN = f90')
+        mf.filter('^LOADER.*',  'LOADER = f90')
+        mf.filter('^CC =.*',  'CC = cc')
+
+
     def install(self, spec, prefix):
-        symlink('make.inc.example', 'make.inc')
         make('blaslib')
 
         # Tests that blas builds correctly
@@ -25,5 +35,6 @@ def install(self, spec, prefix):
         install('librefblas.a', prefix.lib)
 
         # Blas virtual package should provide blas.a and libblas.a
-        symlink(prefix.lib + '/librefblas.a', prefix.lib + '/blas.a')
-        symlink(prefix.lib + '/librefblas.a', prefix.lib + '/libblas.a')
+        with working_dir(prefix.lib):
+            symlink('librefblas.a', 'blas.a')
+            symlink('librefblas.a', 'libblas.a')