diff --git a/src/cookie_helper.cc b/src/cookie_helper.cc
index a396519c..1ebf47a7 100644
--- a/src/cookie_helper.cc
+++ b/src/cookie_helper.cc
@@ -243,12 +243,16 @@ bool parse
   if(nvEnd != end) {
     ++nvEnd;
   }
+  static const char A2_EXPIRES[] = "expires";
+  static const char A2_MAX_AGE[] = "max-age";
+  static const char A2_DOMAIN[] = "domain";
+  static const char A2_PATH[] = "path";
+  static const char A2_SECURE[] = "secure";
+  static const char A2_HTTPONLY[] = "httponly";
   for(std::string::const_iterator i = nvEnd; i != end;) {
     std::string::const_iterator j = std::find(i, end, ';');
     std::string::const_iterator eq = std::find(i, j, '=');
     p = util::stripIter(i, eq);
-    std::string attrName(p.first, p.second);
-    util::lowercase(attrName);
     std::pair<std::string::const_iterator,
               std::string::const_iterator> attrp;
     if(eq == j) {
@@ -260,13 +264,13 @@ bool parse
     if(j != end) {
       ++i;
     }
-    if(attrName == "expires") {
+    if(util::strieq(p.first, p.second, A2_EXPIRES, vend(A2_EXPIRES)-1)) {
       if(parseDate(expiryTime, attrp.first, attrp.second)) {
         foundExpires = true;
       } else {
         return false;
       }
-    } else if(attrName == "max-age") {
+    } else if(util::strieq(p.first, p.second, A2_MAX_AGE, vend(A2_MAX_AGE)-1)) {
       if(attrp.first == attrp.second ||
          (!in(static_cast<unsigned char>(*attrp.first), 0x30u, 0x39u) &&
           *attrp.first != '-')) {
@@ -295,7 +299,7 @@ bool parse
       } else {
         return false;
       }
-    } else if(attrName == "domain") {
+    } else if(util::strieq(p.first, p.second, A2_DOMAIN, vend(A2_DOMAIN)-1)) {
       if(attrp.first == attrp.second) {
         return false;
       }
@@ -306,15 +310,15 @@ bool parse
         return false;
       }
       cookieDomain.assign(noDot, end);
-    } else if(attrName == "path") {
+    } else if(util::strieq(p.first, p.second, A2_PATH, vend(A2_PATH)-1)) {
       if(goodPath(attrp.first, attrp.second)) {
         cookiePath.assign(attrp.first, attrp.second);
       } else {
         cookiePath = defaultPath;
       }
-    } else if(attrName == "secure") {
+    } else if(util::strieq(p.first, p.second, A2_SECURE, vend(A2_SECURE)-1)) {
       secure = true;
-    } else if(attrName == "httponly") {
+    } else if(util::strieq(p.first, p.second, A2_HTTPONLY, vend(A2_HTTPONLY)-1)) {
       httpOnly = true;
     }
   }