diff --git a/src/com/android/loganalysis/parser/CompactMemInfoParser.java b/src/com/android/loganalysis/parser/CompactMemInfoParser.java
index a4223d2..788cd8b 100644
--- a/src/com/android/loganalysis/parser/CompactMemInfoParser.java
+++ b/src/com/android/loganalysis/parser/CompactMemInfoParser.java
@@ -61,7 +61,7 @@
                     if (m.group(6) != null && !"N/A".equals(m.group(6))) {
                         swap = Long.parseLong(m.group(6));
                     }
-                    boolean activities = "a".equals(m.group(6));
+                    boolean activities = "a".equals(m.group(7));
                     item.addPid(pid, name, type, pss, swap, activities);
                     continue;
                 } catch (NumberFormatException nfe) {
diff --git a/tests/src/com/android/loganalysis/parser/CompactMemInfoParserTest.java b/tests/src/com/android/loganalysis/parser/CompactMemInfoParserTest.java
index 009af1d..32119bd 100644
--- a/tests/src/com/android/loganalysis/parser/CompactMemInfoParserTest.java
+++ b/tests/src/com/android/loganalysis/parser/CompactMemInfoParserTest.java
@@ -28,8 +28,8 @@
 
 public class CompactMemInfoParserTest extends TestCase {
 
-    public void testSingleProcLineWithSwap() {
-        List<String> input = Arrays.asList("proc,cached,com.google.android.youtube1,2964,19345,1005,e");
+    public void testSingleProcLineWithSwapHasActivities() {
+        List<String> input = Arrays.asList("proc,cached,com.google.android.youtube1,2964,19345,1005,a");
 
         CompactMemInfoItem item = new CompactMemInfoParser().parse(input);
 
@@ -38,10 +38,24 @@
         assertEquals(19345, item.getPss(2964));
         assertEquals(1005, item.getSwap(2964));
         assertEquals("cached", item.getType(2964));
-        assertEquals(false, item.hasActivities(2964));
+        assertEquals(true, item.hasActivities(2964));
     }
 
-    public void testSingleProcLineWithoutSwap() {
+    public void testSingleProcLineWithoutSwapHasActivities() {
+        List<String> input = Arrays.asList("proc,cached,com.google.android.youtube,2964,19345,a");
+
+        CompactMemInfoItem item = new CompactMemInfoParser().parse(input);
+
+        assertEquals(1, item.getPids().size());
+        assertEquals("com.google.android.youtube", item.getName(2964));
+        assertEquals(19345, item.getPss(2964));
+        assertEquals(0, item.getSwap(2964));
+        assertEquals("cached", item.getType(2964));
+        assertEquals(true, item.hasActivities(2964));
+    }
+
+
+    public void testSingleProcLineWithoutSwapNoActivities() {
         List<String> input = Arrays.asList("proc,cached,com.google.android.youtube,2964,19345,e");
 
         CompactMemInfoItem item = new CompactMemInfoParser().parse(input);
