--- C:/temp/JvValidateEdit.pas	Thu Oct 25 18:28:26 2007
+++ C:/temp/jvcl/run/JvValidateEdit.pas	Tue Oct 07 15:33:38 2008
@@ -926,8 +926,8 @@
         ((Key = '+') and (Posn = 1) and ((Pos('+', S) = 0) or (SelLength > 0))) or
         ((Key = '-') and (Posn = 1) and ((Pos('-', S) = 0) or (SelLength > 0)));
     dfFloat, dfFloatGeneral, dfDecimal, dfPercent:
-      Result := (Pos(Key, FCheckChars) > 0) or
-        ((Key = DecimalSeparator) and (Pos(DecimalSeparator, S) = 0)) or
+      Result := ((Pos(Key, FCheckChars) > 0) and 
+        (((Key = DecimalSeparator) and (Pos(DecimalSeparator, S) = 0)) or (Key <> DecimalSeparator))) or
         ((Key = '+') and (Posn = 1) and ((Pos('+', S) = 0) or (SelLength > 0))) or
         ((Key = '-') and (Posn = 1) and ((Pos('-', S) = 0) or (SelLength > 0)));
     dfCurrency:
@@ -967,8 +967,8 @@
         if (Key = '(') and (Posn = 1) and (NegCurrFormat in [0, 4, 14, 15]) then
           Key := '-';
 
-        Result := (Pos(Key, FCheckChars) > 0) or
-          ((Key = DecimalSeparator) and (Pos(DecimalSeparator, S) = 0)) or
+        Result := ((Pos(Key, FCheckChars) > 0) and 
+          (((Key = DecimalSeparator) and (Pos(DecimalSeparator, S) = 0)) or (Key <> DecimalSeparator))) or
           ((Key = '+') and (Posn = 1) and ((Pos('+', S) = 0) or (SelLength > 0))) or
           ((Key = '-') and (Posn = ExpectedNegPos) and ((Pos(ExpectedNegChar, S) = 0) or (SelLength > 0)));
       end;
