diff --git a/abi.js b/abi.js
index <HASH>..<HASH> 100644
--- a/abi.js
+++ b/abi.js
@@ -9,7 +9,8 @@ function getAbi (opts, version, cb) {
 
   tryReadFiles(function (err, abi) {
     if (err && err.code === 'ENOENT') {
-      return install({log: log, force: true}, version, function (err) {
+      return install({ log: log, force: true, backend: opts.backend},
+                     version, function (err) {
         if (err) return cb(err)
         tryReadFiles(function (err, abi) {
           if (!err || err.code !== 'ENOENT') return cb(err, abi)
diff --git a/gypinstall.js b/gypinstall.js
index <HASH>..<HASH> 100644
--- a/gypinstall.js
+++ b/gypinstall.js
@@ -4,6 +4,7 @@ var gyp = require('./gyp')
 function runGypInstall (opts, version, cb) {
   gyp({
     log: opts.log,
+    backend: opts.backend,
     args: ['node', 'index.js', 'install', version]
   }, cb)
 }
Problem: Failed to locate `node.h` and `node_version.h`

Hits when installing new ABI versions. Cause was gypinstall.js not
passing the backend down to gyp, so headers were installed into
$HOME/.node-gyp when using the --backend=node-ninja.

Solution: gypinstall.js passes opts.backend down when calling backend.