diff --git a/src/main/java/net/onrc/onos/core/matchaction/MatchAction.java b/src/main/java/net/onrc/onos/core/matchaction/MatchAction.java
index 5f7d9fb..fdf1fc7 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/MatchAction.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/MatchAction.java
@@ -32,6 +32,16 @@
     }
 
     /**
+     * no-arg constructor for Kryo.
+     */
+    protected MatchAction() {
+        id = null;
+        port = null;
+        match = null;
+        actions = null;
+    }
+
+    /**
      * Constructor. TEMPORARY
      *
      * @param id ID for this MatchAction object
diff --git a/src/main/java/net/onrc/onos/core/matchaction/MatchActionId.java b/src/main/java/net/onrc/onos/core/matchaction/MatchActionId.java
index 0bddffa..bea973e 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/MatchActionId.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/MatchActionId.java
@@ -20,6 +20,13 @@
     }
 
     /**
+     * no-arg constructor for Kryo.
+     */
+    protected MatchActionId() {
+        value = -1;
+    }
+
+    /**
      * Returns the MatchActionId as a long.
      *
      * @return MatchAction ID
diff --git a/src/main/java/net/onrc/onos/core/matchaction/MatchActionOperations.java b/src/main/java/net/onrc/onos/core/matchaction/MatchActionOperations.java
index e87fcda..73cff28 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/MatchActionOperations.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/MatchActionOperations.java
@@ -1,11 +1,11 @@
 package net.onrc.onos.core.matchaction;
 
-import net.onrc.onos.api.batchoperation.BatchOperation;
+import static com.google.common.base.Preconditions.checkNotNull;
 
 import java.util.HashSet;
 import java.util.Set;
 
-import static com.google.common.base.Preconditions.checkNotNull;
+import net.onrc.onos.api.batchoperation.BatchOperation;
 
 /**
  * The MatchActionOperations class holds a list of MatchActionOperationEntry
@@ -39,6 +39,14 @@
     }
 
     /**
+     * no-arg constructor for Kryo.
+     */
+    protected MatchActionOperations() {
+        id = null;
+        dependencies = null;
+    }
+
+    /**
      * Gets the identifier for the Match Action Operations object.
      *
      * @return identifier for the Opertions object
diff --git a/src/main/java/net/onrc/onos/core/matchaction/MatchActionOperationsId.java b/src/main/java/net/onrc/onos/core/matchaction/MatchActionOperationsId.java
index e346732..93f2ec7 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/MatchActionOperationsId.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/MatchActionOperationsId.java
@@ -19,6 +19,13 @@
     }
 
     /**
+     * no-arg instructor for Kryo.
+     */
+    protected MatchActionOperationsId() {
+        id = -1;
+    }
+
+    /**
      * Gets the identifier for the Operations object.
      *
      * @return Operations object identifier as a string
diff --git a/src/main/java/net/onrc/onos/core/matchaction/SwitchResult.java b/src/main/java/net/onrc/onos/core/matchaction/SwitchResult.java
index 6faaa0d..b5db2e8 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/SwitchResult.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/SwitchResult.java
@@ -7,7 +7,7 @@
     private Status status;
     private MatchActionOperationsId matchSetId;
 
-    protected enum Status {
+    public enum Status {
         SUCCESS,
         FAILURE,
         UNKNOWN
@@ -19,6 +19,13 @@
         this.matchSetId = match;
     }
 
+    /**
+     * no-arg constructor for Kryo.
+     */
+    protected SwitchResult() {
+
+    }
+
     protected void setStatus(Status newStatus) {
         this.status = newStatus;
     }
diff --git a/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java b/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
index fbb7999..134f0d7 100644
--- a/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
+++ b/src/main/java/net/onrc/onos/core/util/serializers/KryoFactory.java
@@ -47,6 +47,14 @@
 import net.onrc.onos.core.intent.PathIntent;
 import net.onrc.onos.core.intent.ShortestPathIntent;
 import net.onrc.onos.core.intent.runtime.IntentStateList;
+import net.onrc.onos.core.matchaction.MatchAction;
+import net.onrc.onos.core.matchaction.MatchActionId;
+import net.onrc.onos.core.matchaction.MatchActionOperationEntry;
+import net.onrc.onos.core.matchaction.MatchActionOperations;
+import net.onrc.onos.core.matchaction.MatchActionOperationsId;
+import net.onrc.onos.core.matchaction.MatchActionOperationsState;
+import net.onrc.onos.core.matchaction.SwitchResult;
+import net.onrc.onos.core.matchaction.SwitchResultList;
 import net.onrc.onos.core.matchaction.action.ModifyDstMacAction;
 import net.onrc.onos.core.matchaction.action.ModifySrcMacAction;
 import net.onrc.onos.core.matchaction.action.OutputAction;
@@ -267,10 +275,20 @@
         kryo.register(SingleDstTreeFlow.class);
 
         // New match action related classes
+        kryo.register(MatchAction.class);
+        kryo.register(MatchActionId.class);
         kryo.register(PacketMatch.class);
         kryo.register(OutputAction.class);
         kryo.register(ModifyDstMacAction.class);
         kryo.register(ModifySrcMacAction.class);
+        kryo.register(MatchActionOperations.class);
+        kryo.register(MatchActionOperations.Operator.class);
+        kryo.register(MatchActionOperationsId.class);
+        kryo.register(MatchActionOperationsState.class);
+        kryo.register(MatchActionOperationEntry.class);
+        kryo.register(SwitchResultList.class);
+        kryo.register(SwitchResult.class);
+        kryo.register(SwitchResult.Status.class);
 
         // Host-related classes
         kryo.register(HashSet.class);
