diff --git a/funcs/func_sysinfo.c b/funcs/func_sysinfo.c
index b386b9fb48e9b273d12b1ba3cd20901bbe504da1..16e9632d5b00f4011d13b71a91ded490af35e6da 100644
--- a/funcs/func_sysinfo.c
+++ b/funcs/func_sysinfo.c
@@ -60,15 +60,15 @@ static int sysinfo_helper(struct ast_channel *chan, const char *cmd, char *data,
 	else if (!strcasecmp("uptime", data)) {             /* in hours */
 		snprintf(buf, len, "%ld", sys_info.uptime/3600);
 	} else if (!strcasecmp("totalram", data)) {         /* in KiB */
-		snprintf(buf, len, "%ld",(sys_info.totalram / sys_info.mem_unit)/1024);
+		snprintf(buf, len, "%ld",(sys_info.totalram * sys_info.mem_unit)/1024);
 	} else if (!strcasecmp("freeram", data)) {          /* in KiB */
-		snprintf(buf, len, "%ld",(sys_info.freeram / sys_info.mem_unit)/1024);
+		snprintf(buf, len, "%ld",(sys_info.freeram * sys_info.mem_unit)/1024);
 	} else if (!strcasecmp("bufferram", data)) {        /* in KiB */
-		snprintf(buf, len, "%ld",(sys_info.bufferram / sys_info.mem_unit)/1024);
+		snprintf(buf, len, "%ld",(sys_info.bufferram * sys_info.mem_unit)/1024);
 	} else if (!strcasecmp("totalswap", data)) {        /* in KiB */
-		snprintf(buf, len, "%ld",(sys_info.totalswap / sys_info.mem_unit)/1024);
+		snprintf(buf, len, "%ld",(sys_info.totalswap * sys_info.mem_unit)/1024);
 	} else if (!strcasecmp("freeswap", data)) {         /* in KiB */
-		snprintf(buf, len, "%ld",(sys_info.freeswap / sys_info.mem_unit)/1024);
+		snprintf(buf, len, "%ld",(sys_info.freeswap * sys_info.mem_unit)/1024);
 	} else if (!strcasecmp("numprocs", data)) {
 		snprintf(buf, len, "%d", sys_info.procs);
 	}