private Property parseProperties() throws ParseException {

    Property prop;

    /*
     * <bmessage-property>::=<bmessage-version-property>
     * <bmessage-readstatus-property> <bmessage-type-property>
     * <bmessage-folder-property> <bmessage-version-property>::="VERSION:"
     * <common-digit>*"."<common-digit>* <CRLF>
     * <bmessage-readstatus-property>::="STATUS:" 'readstatus' <CRLF>
     * <bmessage-type-property>::="TYPE:" 'type' <CRLF>
     * <bmessage-folder-property>::="FOLDER:" 'foldername' <CRLF>
     */

    do {
      prop = mParser.next();

      if (prop.name.equals("VERSION")) {
        mBmsg.mBmsgVersion = prop.value;

      } else if (prop.name.equals("STATUS")) {
        for (Status s : Status.values()) {
          if (prop.value.equals(s.toString())) {
            mBmsg.mBmsgStatus = s;
            break;
          }
        }

      } else if (prop.name.equals("TYPE")) {
        for (Type t : Type.values()) {
          if (prop.value.equals(t.toString())) {
            mBmsg.mBmsgType = t;
            break;
          }
        }

      } else if (prop.name.equals("FOLDER")) {
        mBmsg.mBmsgFolder = prop.value;
      }

    } while (!prop.equals(BEGIN_VCARD) && !prop.equals(BEGIN_BENV));

    return prop;
  }