diff --git a/src/com/android/se/security/gpac/AID_REF_DO.java b/src/com/android/se/security/gpac/AID_REF_DO.java
index 70bddfb..31764b4 100644
--- a/src/com/android/se/security/gpac/AID_REF_DO.java
+++ b/src/com/android/se/security/gpac/AID_REF_DO.java
@@ -114,7 +114,7 @@
             }
         } else if (getTag() == TAG) {
 
-            // sanity checks
+            // quick checks
             if ((getValueLength() < 5 || getValueLength() > 16) && getValueLength() != 0) {
                 throw new ParserException("Invalid value length for AID-REF-DO!");
             }
@@ -151,7 +151,7 @@
             stream.write(0x00);
         } else if (getTag() == TAG) {
 
-            // sanity check
+            // quick check
             if (getValueLength() != 0) {
                 if (getValueLength() < 5 || getValueLength() > 16) {
                     throw new DO_Exception("Invalid length of AID!");
diff --git a/src/com/android/se/security/gpac/BerTlv.java b/src/com/android/se/security/gpac/BerTlv.java
index 066bf5e..966a442 100644
--- a/src/com/android/se/security/gpac/BerTlv.java
+++ b/src/com/android/se/security/gpac/BerTlv.java
@@ -225,7 +225,7 @@
 
     /** Returns the byte array of only the data values */
     public byte[] getValue() {
-        // sanity checks
+        // quick checks
         if (mRawData == null
                 || mValueLength == 0
                 || mValueIndex < 0
diff --git a/src/com/android/se/security/gpac/Hash_REF_DO.java b/src/com/android/se/security/gpac/Hash_REF_DO.java
index edd019a..e131f8b 100644
--- a/src/com/android/se/security/gpac/Hash_REF_DO.java
+++ b/src/com/android/se/security/gpac/Hash_REF_DO.java
@@ -111,7 +111,7 @@
         int index = getValueIndex();
         int length = getValueLength();
 
-        // sanity checks
+        // quick checks
         if (length != 0 && length != SHA1_LEN && length != SHA256_LEN) {
             throw new ParserException("Invalid value length for Hash-REF-DO!");
         }
@@ -139,7 +139,7 @@
     @Override
     public void build(ByteArrayOutputStream stream) throws DO_Exception {
 
-        // sanity checks
+        // quick checks
         if (mHash.length != SHA1_LEN && mHash.length != SHA256_LEN && mHash.length != 0) {
             throw new DO_Exception("Hash value must be " + SHA1_LEN + " or " + SHA256_LEN
                     + " bytes in length!");
diff --git a/src/com/android/se/security/gpac/PERM_AR_DO.java b/src/com/android/se/security/gpac/PERM_AR_DO.java
index f927042..d62862a 100644
--- a/src/com/android/se/security/gpac/PERM_AR_DO.java
+++ b/src/com/android/se/security/gpac/PERM_AR_DO.java
@@ -71,7 +71,7 @@
      */
     public void build(ByteArrayOutputStream stream) throws DO_Exception {
 
-        // sanity checks
+        // quick checks
         if (mPermissionMask.length != PERM_MASK_LEN) {
             throw new DO_Exception("Invalid value length for PERM-AR-DO!");
         }
diff --git a/src/com/android/se/security/gpac/PKG_REF_DO.java b/src/com/android/se/security/gpac/PKG_REF_DO.java
index a35415a..571909f 100644
--- a/src/com/android/se/security/gpac/PKG_REF_DO.java
+++ b/src/com/android/se/security/gpac/PKG_REF_DO.java
@@ -75,7 +75,7 @@
         byte[] data = getRawData();
         int index = getValueIndex();
 
-        // sanity checks
+        // quick checks
         if (getValueLength() > 128) {
             throw new ParserException("Invalid value length for PKG-REF-DO!");
         }
@@ -98,7 +98,7 @@
     @Override
     public void build(ByteArrayOutputStream stream) throws DO_Exception {
         byte[] pkg = mPackageName.getBytes();
-        // sanity checks
+        // quick checks
         if (pkg.length > 128) {
             throw new DO_Exception("Invalid value length for PKG-REF-DO!");
         }
