diff --git a/src/com/android/loganalysis/item/MemInfoItem.java b/src/com/android/loganalysis/item/MemInfoItem.java
index 07a14fe..9fa512c 100644
--- a/src/com/android/loganalysis/item/MemInfoItem.java
+++ b/src/com/android/loganalysis/item/MemInfoItem.java
@@ -22,7 +22,7 @@
  * An {@link IItem} used to store the memory info output.
  */
 @SuppressWarnings("serial")
-public class MemInfoItem extends GenericMapItem<Integer> {
+public class MemInfoItem extends GenericMapItem<Long> {
 
     /** Constant for JSON output */
     public static final String LINES = "LINES";
diff --git a/src/com/android/loganalysis/parser/MemInfoParser.java b/src/com/android/loganalysis/parser/MemInfoParser.java
index 72125b0..4a48798 100644
--- a/src/com/android/loganalysis/parser/MemInfoParser.java
+++ b/src/com/android/loganalysis/parser/MemInfoParser.java
@@ -49,8 +49,12 @@
             Matcher m = INFO_LINE.matcher(line);
             if (m.matches()) {
                 String key = m.group(1);
-                Integer value = Integer.parseInt(m.group(2));
-                item.put(key, value);
+                try {
+                    Long value = Long.parseLong(m.group(2));
+                    item.put(key, value);
+                } catch (NumberFormatException e) {
+                    // Ignore
+                }
             }
         }
 
diff --git a/tests/src/com/android/loganalysis/item/MemInfoItemTest.java b/tests/src/com/android/loganalysis/item/MemInfoItemTest.java
index beda797..7f25fe3 100644
--- a/tests/src/com/android/loganalysis/item/MemInfoItemTest.java
+++ b/tests/src/com/android/loganalysis/item/MemInfoItemTest.java
@@ -30,8 +30,8 @@
      */
     public void testToJson() throws JSONException {
         MemInfoItem item = new MemInfoItem();
-        item.put("foo", 123);
-        item.put("bar", 456);
+        item.put("foo", 123l);
+        item.put("bar", 456l);
         item.setText("foo: 123 kB\nbar: 456 kB");
 
         // Convert to JSON string and back again
diff --git a/tests/src/com/android/loganalysis/parser/MemInfoParserTest.java b/tests/src/com/android/loganalysis/parser/MemInfoParserTest.java
index d02ce39..ab41b33 100644
--- a/tests/src/com/android/loganalysis/parser/MemInfoParserTest.java
+++ b/tests/src/com/android/loganalysis/parser/MemInfoParserTest.java
@@ -37,16 +37,20 @@
                 "MemFree:           65420 kB",
                 "Buffers:           20800 kB",
                 "Cached:            86204 kB",
-                "SwapCached:            0 kB");
+                "SwapCached:            0 kB",
+                "Long:           34359640152 kB",
+                "ExtraLongIgnore: 12345678901234567890 kB");
 
         MemInfoItem item = new MemInfoParser().parse(inputBlock);
 
-        assertEquals(5, item.size());
-        assertEquals((Integer)353332, item.get("MemTotal"));
-        assertEquals((Integer)65420, item.get("MemFree"));
-        assertEquals((Integer)20800, item.get("Buffers"));
-        assertEquals((Integer)86204, item.get("Cached"));
-        assertEquals((Integer)0, item.get("SwapCached"));
+        assertEquals(6, item.size());
+        assertEquals((Long)353332l, item.get("MemTotal"));
+        assertEquals((Long)65420l, item.get("MemFree"));
+        assertEquals((Long)20800l, item.get("Buffers"));
+        assertEquals((Long)86204l, item.get("Cached"));
+        assertEquals((Long)0l, item.get("SwapCached"));
+        assertEquals((Long)34359640152l, item.get("Long"));
+        assertNull(item.get("ExtraLongIgnore"));
         assertEquals(ArrayUtil.join("\n", inputBlock), item.getText());
     }
 
