diff --git a/couriers/australia_post/index.js b/couriers/australia_post/index.js
index <HASH>..<HASH> 100644
--- a/couriers/australia_post/index.js
+++ b/couriers/australia_post/index.js
@@ -7,6 +7,14 @@ function valid(connote) {
   if (typeof connote != "string") {
     return false;
   }
+
+  connote = connote.trim().toUpperCase();
+
+  // handle 14 character couriers please
+  if (connote.length === 14 && connote.indexOf("CP") === 0) {
+    return false;
+  }
+
   return [10, 14, 18, 21, 39].indexOf(connote.length) != -1;
 }
 
diff --git a/couriers/australia_post/index.test.js b/couriers/australia_post/index.test.js
index <HASH>..<HASH> 100644
--- a/couriers/australia_post/index.test.js
+++ b/couriers/australia_post/index.test.js
@@ -16,6 +16,7 @@ describe("Australia Post", () => {
 
     describe("with an invalid connote", () => {
       test("returns false", () => {
+        expect(australia_post.valid("CP000000000000")).toBe(false); // 14 Couriers Please
         expect(australia_post.valid("12345")).toBe(false);
         expect(australia_post.valid("")).toBe(false);
         expect(australia_post.valid(null)).toBe(false);
Return false if a couriers please connote

Australia Post and Couriers Please both have <I> digit connotes however
Couriers Please prepends theirs with 'CP'