diff --git a/package/gluon-respondd/src/respondd.c b/package/gluon-respondd/src/respondd.c
index 0cdf5408f0473da9c7bd4102cf65885dfc69fee8..b0b749364d79fa19e6d6d99dacb644911660bef1 100644
--- a/package/gluon-respondd/src/respondd.c
+++ b/package/gluon-respondd/src/respondd.c
@@ -197,6 +197,8 @@ static struct json_object * get_memory(void) {
 			json_object_object_add(ret, "total", json_object_new_int(value));
 		else if (!strcmp(label, "MemFree"))
 			json_object_object_add(ret, "free", json_object_new_int(value));
+		else if (!strcmp(label, "MemAvailable"))
+			json_object_object_add(ret, "available", json_object_new_int(value));
 		else if (!strcmp(label, "Buffers"))
 			json_object_object_add(ret, "buffers", json_object_new_int(value));
 		else if (!strcmp(label, "Cached"))
diff --git a/package/gluon-status-page/javascript/status-page.js b/package/gluon-status-page/javascript/status-page.js
index fcd6fd9506ca17ebb55bd7f7bd42f5e9905dd867..e3405cf6c5376cd21b5776d47546d4a253846942 100644
--- a/package/gluon-status-page/javascript/status-page.js
+++ b/package/gluon-status-page/javascript/status-page.js
@@ -74,7 +74,7 @@
 			return _['%s used'].sprintf(formatNumber(100 * value, 3) + '%');
 		},
 		'memory': function(memory) {
-			var usage = 1 - (memory.free + memory.buffers + memory.cached) / memory.total
+			var usage = 1 - memory.available / memory.total
 			return formats.percent(usage);
 		},
 		'time': function(seconds) {