diff --git a/read_mem.c b/read_mem.c
index e3094cb..173462b 100644
--- a/read_mem.c
+++ b/read_mem.c
@@ -467,11 +467,11 @@ int read_meminfo()
 #else
 /* default /proc/meminfo (Linux) method ... */
 
-int getnum(FILE *fp, char *marker)
+long getnum(FILE *fp, char *marker)
 {
 	char thebuf[255];
 	int done = 0;
-	int theval;
+	long theval;
 
 	do {
 		if (fgets(thebuf, sizeof(thebuf), fp) == NULL) {
@@ -480,7 +480,7 @@ int getnum(FILE *fp, char *marker)
 		
 		} else
 			if (strstr(thebuf, marker)) {
-				sscanf(thebuf, "%*s %d %*s\n",
+				sscanf(thebuf, "%*s %ld %*s\n",
 					&theval);
 				return (theval);
 			}