diff --git a/var/spack/repos/builtin/packages/hdf/package.py b/var/spack/repos/builtin/packages/hdf/package.py
index 1ecb16718368e9bc6187ff3dbe6f73be6b6f526f..ac6435f2a24cec090656ffa63d86815a2742ed80 100644
--- a/var/spack/repos/builtin/packages/hdf/package.py
+++ b/var/spack/repos/builtin/packages/hdf/package.py
@@ -24,12 +24,13 @@ def url_for_version(self, version):
 
     def install(self, spec, prefix):
         config_args = [
+            'CFLAGS=-fPIC',
             '--prefix=%s' % prefix,
-            '--with-jpeg=%s'  % spec['jpeg'].prefix,
-            '--with-zlib=%s'  % spec['zlib'].prefix,
-            '--disable-netcdf',
+            '--with-jpeg=%s' % spec['jpeg'].prefix,
+            '--with-zlib=%s' % spec['zlib'].prefix,
+            '--disable-netcdf',  # must be disabled to build NetCDF with HDF4 support
             '--enable-fortran',
-            '--disable-shared',
+            '--disable-shared',  # fortran and shared libraries are not compatible
             '--enable-static',
             '--enable-production'
         ]
diff --git a/var/spack/repos/builtin/packages/netcdf/netcdf-4.3.3-mpi.patch b/var/spack/repos/builtin/packages/netcdf/netcdf-4.3.3-mpi.patch
deleted file mode 100644
index 46dda5fc9de0157e125f206b5ed5bfbd018b3655..0000000000000000000000000000000000000000
--- a/var/spack/repos/builtin/packages/netcdf/netcdf-4.3.3-mpi.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -Nur netcdf-4.3.3/CMakeLists.txt netcdf-4.3.3.mpi/CMakeLists.txt
---- netcdf-4.3.3/CMakeLists.txt	2015-02-12 16:44:35.000000000 -0500
-+++ netcdf-4.3.3.mpi/CMakeLists.txt	2015-10-14 16:44:41.176300658 -0400
-@@ -753,6 +753,7 @@
-     SET(USE_PARALLEL OFF CACHE BOOL "")
-     MESSAGE(STATUS "Cannot find HDF5 library built with parallel support. Disabling parallel build.")
-   ELSE()
-+    FIND_PACKAGE(MPI REQUIRED)
-     SET(USE_PARALLEL ON CACHE BOOL "")
-     SET(STATUS_PARALLEL "ON")
-   ENDIF()
-diff -Nur netcdf-4.3.3/liblib/CMakeLists.txt netcdf-4.3.3.mpi/liblib/CMakeLists.txt
---- netcdf-4.3.3/liblib/CMakeLists.txt	2015-02-12 16:44:35.000000000 -0500
-+++ netcdf-4.3.3.mpi/liblib/CMakeLists.txt	2015-10-14 16:44:57.757793634 -0400
-@@ -71,6 +71,10 @@
-   SET(TLL_LIBS ${TLL_LIBS} ${CURL_LIBRARY})
- ENDIF()
- 
-+IF(USE_PARALLEL)
-+  SET(TLL_LIBS ${TLL_LIBS} ${MPI_C_LIBRARIES})
-+ENDIF()
-+
- IF(USE_HDF4)
-   SET(TLL_LIBS ${TLL_LIBS} ${HDF4_LIBRARIES})
- ENDIF()
diff --git a/var/spack/repos/builtin/packages/netcdf/package.py b/var/spack/repos/builtin/packages/netcdf/package.py
index 93c4410146ff9229d0b7246c05bb571f85bfd242..3cd0b2ee7a893a5200a75692eaf14a683062ec3d 100644
--- a/var/spack/repos/builtin/packages/netcdf/package.py
+++ b/var/spack/repos/builtin/packages/netcdf/package.py
@@ -12,9 +12,7 @@ class Netcdf(Package):
     version('4.3.3', '5fbd0e108a54bd82cb5702a73f56d2ae')
 
     variant('fortran', default=False, description="Download and install NetCDF-Fortran")
-    variant('hdf4', default=False, description="Enable HDF4 support")
-
-    patch('netcdf-4.3.3-mpi.patch')
+    variant('hdf4',    default=False, description="Enable HDF4 support")
 
     # Dependencies:
     depends_on("curl")  # required for DAP support
@@ -23,7 +21,13 @@ class Netcdf(Package):
     depends_on("zlib")  # required for NetCDF-4 support
 
     def install(self, spec, prefix):
+        # Environment variables
+        CPPFLAGS = []
+        LDFLAGS  = []
+        LIBS     = []
+
         config_args = [
+            "--prefix=%s" % prefix,
             "--enable-fsync",
             "--enable-v2",
             "--enable-utilities",
@@ -37,18 +41,40 @@ def install(self, spec, prefix):
             "--enable-dap"
         ]
 
+        CPPFLAGS.append("-I%s/include" % spec['hdf5'].prefix)
+        LDFLAGS.append( "-L%s/lib"     % spec['hdf5'].prefix)
+
         # HDF4 support
+        # As of NetCDF 4.1.3, "--with-hdf4=..." is no longer a valid option
+        # You must use the environment variables CPPFLAGS and LDFLAGS
         if '+hdf4' in spec:
             config_args.append("--enable-hdf4")
+            CPPFLAGS.append("-I%s/include" % spec['hdf'].prefix)
+            LDFLAGS.append( "-L%s/lib"     % spec['hdf'].prefix)
+            LIBS.append(    "-l%s"         % "jpeg")
+
+        if 'szip' in spec:
+            CPPFLAGS.append("-I%s/include" % spec['szip'].prefix)
+            LDFLAGS.append( "-L%s/lib"     % spec['szip'].prefix)
+            LIBS.append(    "-l%s"         % "sz")
 
         # Fortran support
         # In version 4.2+, NetCDF-C and NetCDF-Fortran have split.
         # They can be installed separately, but this bootstrap procedure
         # should be able to install both at the same time.
-        # Note: this is a new experimental feature
+        # Note: this is a new experimental feature.
         if '+fortran' in spec:
             config_args.append("--enable-remote-fortran-bootstrap")
 
+        config_args.append('CPPFLAGS=%s' % ' '.join(CPPFLAGS))
+        config_args.append('LDFLAGS=%s'  % ' '.join(LDFLAGS))
+        config_args.append('LIBS=%s'     % ' '.join(LIBS))
+
         configure(*config_args)
         make()
         make("install")
+
+        # After installing NetCDF-C, install NetCDF-Fortran
+        if '+fortran' in spec:
+            make("build-netcdf-fortran")
+            make("install-netcdf-fortran")