diff --git a/bin/installexternal.sh b/bin/installexternal.sh
index c4aabda510fe0adf776d3bd76f6e2e0360b0b8b5..e1b2c2b22ecf50fdeebfbcfe3eb984b2040de780 100755
--- a/bin/installexternal.sh
+++ b/bin/installexternal.sh
@@ -65,7 +65,7 @@ installErt()
     if [ ! -e ert ]; then
         git clone -b release/2016.04 https://github.com/Ensembles/ert.git
     fi
-        
+
     if  test "$DOWNLOAD_ONLY" == "y"; then
         return
     fi
@@ -80,13 +80,13 @@ installErt()
     cd $TOPDIR/ert
     mkdir build
     cd build
-    cmake ../devel 
+    cmake ../devel
     make
 
     # show additional information
     echo "Ert has been built in directory ert/build."
     echo "Do not change this directory otherwise opm will not find ert!"
-    
+
     cd $TOPDIR
 }
 
@@ -113,6 +113,39 @@ installFoamGrid()
     fi
 }
 
+installGLPK()
+{
+    cd $EXTDIR
+    rm -rf glpk* standalone
+
+    if [ ! -e glpk-4.60.tar.gz ]; then
+        wget http://ftp.gnu.org/gnu/glpk/glpk-4.60.tar.gz
+    fi
+
+    if  test "$DOWNLOAD_ONLY" == "y"; then
+        return
+    fi
+
+    if  test "$CLEANUP" == "y"; then
+        rm -rf glpk
+        return
+    fi
+
+    mkdir glpk
+    tar zxvf glpk-4.60.tar.gz --strip-components=1 -C glpk
+    cd glpk
+
+    ./configure
+    make
+
+    # show additional information
+    echo "In addition, it might be necessary to set manually"
+    echo "the glpk path in the CMAKE_FLAGS section of the .opts-file:"
+    echo "  -DGLPK_ROOT=/path/to/glpk \\"
+
+    cd $TOPDIR
+}
+
 installGStat()
 {
     cd $EXTDIR
@@ -218,6 +251,39 @@ installMultidomainGrid()
     cd $TOPDIR
 }
 
+installNLOPT()
+{
+    cd $EXTDIR
+    rm -rf nlopt* standalone
+
+    if [ ! -e nlopt-2.4.2.tar.gz ]; then
+        wget http://ab-initio.mit.edu/nlopt/nlopt-2.4.2.tar.gz
+    fi
+
+    if  test "$DOWNLOAD_ONLY" == "y"; then
+        return
+    fi
+
+    if  test "$CLEANUP" == "y"; then
+        rm -rf nlopt
+        return
+    fi
+
+    mkdir nlopt
+    tar zxvf nlopt-2.4.2.tar.gz --strip-components=1 -C nlopt
+    cd nlopt
+
+    ./configure
+    make
+
+    # show additional information
+    echo "In addition, it might be necessary to set manually"
+    echo "the nlopt path in the CMAKE_FLAGS section of the .opts-file:"
+    echo "  -DNLOPT_ROOT=/path/to/nlopt \\"
+
+    cd $TOPDIR
+}
+
 installOPM()
 {
     cd $TOPDIR
@@ -246,7 +312,7 @@ installOPM()
     if [ ! -e opm-grid ]; then
         git clone -b release/2016.04 https://github.com/OPM/opm-grid
     fi
-        
+
     if  test "$DOWNLOAD_ONLY" == "y"; then
         return
     fi
@@ -264,7 +330,7 @@ installOPM()
     echo "Applying patch for opm-parser"
     cd $TOPDIR/opm-parser
     patch -p1 < $TOPDIR/dumux/patches/opm-parser-2016.04.patch
-    
+
     echo "Applying patch for opm-common"
     cd $TOPDIR/opm-common
     patch -p1 < $TOPDIR/dumux/patches/opm-common-2016.04.patch
@@ -400,10 +466,12 @@ usage()
     echo "  alugrid          Download dune-alugrid."
     echo "  ert              Download and build ert."
     echo "  foamgrid         Download dune-foamgrid."
+    echo "  glpk             Download and install glpk."
     echo "  gstat            Download and install gstat."
     echo "  metis            Install the METIS graph partitioner."
     echo "  multidomain      Download dune-multidomain."
     echo "  multidomaingrid  Download and patch dune-multidomaingrid."
+    echo "  nlopt            Download and install nlopt."
     echo "  opm              Download opm modules required for dune-cornerpoint."
     echo "  pdelab           Download dune-pdelab."
     echo "  typetree         Download dune-typetree."
@@ -443,8 +511,8 @@ for TMP in "$@"; do
             MPILIBS=$($MPICONFIG --libs)
             MPILIBDIR=$(echo $MPILIBS | sed "s/.*-L\([^[:blank:]]*\).*/\1/")
 
-            # consistency check 
-            if test "$ENABLE_MPI" == "y" -a -z "$MPICXX"; then 
+            # consistency check
+            if test "$ENABLE_MPI" == "y" -a -z "$MPICXX"; then
                 echo ""
                 echo "Compiler mpicxx not found although ENABLE_MPI is set in this script!"
                 echo "Please make sure that your MPI environment is set up or that you turn it off."
@@ -454,7 +522,7 @@ for TMP in "$@"; do
                 echo ""
 
                 exit -1
-            fi 
+            fi
 
             ;;
         "--clean")
@@ -466,10 +534,12 @@ for TMP in "$@"; do
             installAluGrid
             installErt
             installFoamGrid
+            installGLPK
             installGStat
             installMETIS
             installMultidomain
             installMultidomainGrid
+            installNLOPT
             installOPM
             installPDELab
             installTypeTree
@@ -487,6 +557,11 @@ for TMP in "$@"; do
             SOMETHING_DONE="y"
             installFoamGrid
             ;;
+        glpk)
+            SOMETHING_DONE="y"
+            createExternalDirectory
+            installGLPK
+            ;;
         gstat)
             SOMETHING_DONE="y"
             createExternalDirectory
@@ -505,6 +580,11 @@ for TMP in "$@"; do
             SOMETHING_DONE="y"
             installMultidomainGrid
             ;;
+        nlopt)
+            SOMETHING_DONE="y"
+            createExternalDirectory
+            installNLOPT
+            ;;
         opm)
             SOMETHING_DONE="y"
             installOPM