diff --git a/src/main/java/io/mifos/core/lang/ApplicationName.java b/src/main/java/io/mifos/core/lang/ApplicationName.java
index d984eb6..c3da900 100644
--- a/src/main/java/io/mifos/core/lang/ApplicationName.java
+++ b/src/main/java/io/mifos/core/lang/ApplicationName.java
@@ -41,6 +41,10 @@
   }
 
   static ApplicationName parse(final String springApplicationNameString) {
+    if (springApplicationNameString.length() > 64) {
+      throw new IllegalArgumentException("Spring application name strings for mifos io applications should be 64 characters or less.");
+    }
+
     final Pattern applicationNamePattern = Pattern.compile(
         "^(/??(?<name>\\p{Lower}[\\p{Lower}_]+)(?:-v(?<version>\\d[\\d\\._]*))?)$");
 
diff --git a/src/test/java/io/mifos/core/lang/validation/ValidApplicationNameTest.java b/src/test/java/io/mifos/core/lang/validation/ValidApplicationNameTest.java
index 31613d2..50481d7 100644
--- a/src/test/java/io/mifos/core/lang/validation/ValidApplicationNameTest.java
+++ b/src/test/java/io/mifos/core/lang/validation/ValidApplicationNameTest.java
@@ -44,6 +44,19 @@
   }
 
   @Test
+  public void tooLongAppplicationName()
+  {
+    final StringBuilder stringBuilder = new StringBuilder();
+    for (int i = 0; i < 65 -3; i++) {
+      stringBuilder.append("b");
+    }
+    stringBuilder.append("-v1");
+
+    final AnnotatedClass annotatedInstance = new AnnotatedClass(stringBuilder.toString());
+    Assert.assertFalse(isValid(annotatedInstance));
+  }
+
+  @Test
   public void nullAppplicationName()
   {
     final AnnotatedClass annotatedInstance = new AnnotatedClass(null);
