diff --git a/js/maxlength.js b/js/maxlength.js
index a590fac..d905c26 100644
--- a/js/maxlength.js
+++ b/js/maxlength.js
@@ -97,7 +97,7 @@
             // Re calculate text length
             count = ml.strip_tags(obj.val()).length;
           } else {
-            obj.val(obj.val().substr(0, limit));
+            obj.val($.trim(ml.twochar_lineending(obj.val()).substr(0, limit)));
             // Re calculate text length
             count = ml.twochar_lineending(obj.val()).length;
           }
@@ -105,7 +105,8 @@
       }
       available = limit - count;
     }
-    else {
+
+    if (available >= 0) {
       counter.removeClass(options.cssExceeded);
     }
 
