diff --git a/client/src/main/aidl/net/i2p/android/router/service/IRouterState.aidl b/client/src/main/aidl/net/i2p/android/router/service/IRouterState.aidl
index 92bc3f3219255ae041d25f48a8ed05339ea4c5d4..bc20ece797a2b5f2140f76583cfd5109ecdfff10 100644
--- a/client/src/main/aidl/net/i2p/android/router/service/IRouterState.aidl
+++ b/client/src/main/aidl/net/i2p/android/router/service/IRouterState.aidl
@@ -27,8 +27,13 @@ interface IRouterState {
     boolean isStarted();
 
     /**
-    * Get the state of the I2P router
-    **/
+     * Get the state of the I2P router.
+     *
+     * @return null if the State is not known, e.g. a new state has been added
+     * to State.aidl in I2P Android. Client app devs should update their client
+     * library, or their copy of State.aidl, if they are getting null States.
+     * Future State.aidl versions will be backwards-compatible.
+     */
     State getState();
 
 }
diff --git a/client/src/main/aidl/net/i2p/android/router/service/IRouterStateCallback.aidl b/client/src/main/aidl/net/i2p/android/router/service/IRouterStateCallback.aidl
index 5158ce44ebcc511f753a0554f504ac12ba9ab8b3..0397618c56bc6583259fef39a6ea7f25362a375a 100644
--- a/client/src/main/aidl/net/i2p/android/router/service/IRouterStateCallback.aidl
+++ b/client/src/main/aidl/net/i2p/android/router/service/IRouterStateCallback.aidl
@@ -9,7 +9,10 @@ import net.i2p.android.router.service.State;
  */
 oneway interface IRouterStateCallback {
     /**
-     * Called when the state of the I2P router changes
+     * Called when the state of the I2P router changes.
+     *
+     * @param newState may be null if the State is not known. See
+     * {@link net.i2p.android.router.service.IRouterState#getState()}.
      */
     void stateChanged(in State newState);
 }
diff --git a/client/src/main/java/net/i2p/android/router/service/State.java b/client/src/main/java/net/i2p/android/router/service/State.java
index 46916596634ff6464d845aaa6d6fb19cbda91652..148016e6ead15322190f0101aa479a6bde3718ba 100644
--- a/client/src/main/java/net/i2p/android/router/service/State.java
+++ b/client/src/main/java/net/i2p/android/router/service/State.java
@@ -34,7 +34,12 @@ public enum State implements Parcelable {
     public static final Creator<State> CREATOR = new Creator<State>() {
         @Override
         public State createFromParcel(final Parcel source) {
-            return State.valueOf(source.readString());
+            try {
+                return State.valueOf(source.readString());
+            } catch (IllegalArgumentException e) {
+                // Parcel is from a newer version of State with new states.
+                return null;
+            }
         }
 
         @Override