diff --git a/lib/MissMatch.js b/lib/MissMatch.js
index <HASH>..<HASH> 100644
--- a/lib/MissMatch.js
+++ b/lib/MissMatch.js
@@ -45,18 +45,10 @@ mm.makeParser = function (src) {
    */
   function validChar(c) {
     var code = c.charCodeAt(0);
-    return (code >= 65 && code <= 90) || (code >= 97 && code <= 122);
-  }
-
-  /**
-   * Match valid JS object property names. Like variable names
-   * this is incomplete.
-   * TODO: A better validation has to be found.
-   */
-  function validProp(c) {
-    return validChar(c)
-      || (c === '_')
-      || ((c.charCodeAt(0) >= 47) && (c.charCodeAt(0) <= 57));
+    return (code >= 65 && code <= 90)
+        || (code >= 97 && code <= 122)
+        || (code === 95) // '_'
+        || (code === 36) // '$'    
   }
 
   /**
@@ -211,7 +203,7 @@ mm.makeParser = function (src) {
     consume(); // '.'
     var name = [], property;
 
-    while(validProp(peek())) {
+    while(validChar(peek())) {
       name.push(next());
     }
allow _ and $ in variable names