diff --git a/lib/plugins/config/settings/config.class.php b/lib/plugins/config/settings/config.class.php
index f3d0811b760f3abb4665a7e18f979e33bed40890..603ae3b8343d5f81d3adc2ee74d4c2a6aa51e716 100644
--- a/lib/plugins/config/settings/config.class.php
+++ b/lib/plugins/config/settings/config.class.php
@@ -458,7 +458,11 @@ if (!class_exists('setting_email')) {
 
 if (!class_exists('setting_numeric')) {
   class setting_numeric extends setting_string {
-    var $_pattern = '/^[-+\/*0-9 ]*$/';
+    // This allows for many PHP syntax errors...
+    // var $_pattern = '/^[-+\/*0-9 ]*$/';
+    // much more restrictive, but should eliminate syntax errors.
+    var $_pattern = '/^[-]?[0-9]+(?:[-+*][0-9]+)*$/';
+    //FIXME - make the numeric error checking better.
 
     function out($var, $fmt='php') {