diff --git a/SystemTools.cxx b/SystemTools.cxx
index 5c3e741643c04e99ab3de82454734a0dfa6e7cf8..7a16b222f17095cafc39c9b029f18ae6f575f449 100644
--- a/SystemTools.cxx
+++ b/SystemTools.cxx
@@ -818,6 +818,14 @@ bool SystemTools::FileExists(const char* filename)
 #ifndef R_OK
 # define R_OK 04
 #endif
+
+#ifdef __SYLLABLE__
+  if ((filename !=0) && (*filename == 0))
+    {
+    return false;
+  }
+#endif
+
   if ( access(filename, R_OK) != 0 )
     {
     return false;
diff --git a/kwsysDateStamp.cmake b/kwsysDateStamp.cmake
index 84521761acda3a960f3a93d96290c237e0f34d9a..35c14dacd81317801fda87eac485e74124b0bf1a 100644
--- a/kwsysDateStamp.cmake
+++ b/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@ SET(KWSYS_DATE_STAMP_YEAR  2007)
 SET(KWSYS_DATE_STAMP_MONTH 11)
 
 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   16)
+SET(KWSYS_DATE_STAMP_DAY   23)
diff --git a/testDynamicLoader.cxx b/testDynamicLoader.cxx
index dc0587c0bfe53ff89d86d28e60e3648f6ea8c286..cfdbfd4e1b10fe6bdc07defc7fb7f6cc4985b0a8 100644
--- a/testDynamicLoader.cxx
+++ b/testDynamicLoader.cxx
@@ -97,17 +97,22 @@ int testDynamicLoader(int argc, char *argv[])
 #elif defined(__BEOS__)
   disable_debugger(1);
 #endif
-  int res;
+  int res = 0;
   if( argc == 3 )
     {
     // User specify a libname and symbol to check.
     res = TestDynamicLoader(argv[1], argv[2],1,1,1);
     return res;
     }
+
+// dlopen() on Syllable before 11/22/2007 doesn't return 0 on error
+#ifndef __SYLLABLE__
   // Make sure that inexistant lib is giving correct result
-  res = TestDynamicLoader("azerty_", "foo_bar",0,0,0);
+  res += TestDynamicLoader("azerty_", "foo_bar",0,0,0);
   // Make sure that random binary file cannnot be assimilated as dylib
   res += TestDynamicLoader(TEST_SYSTEMTOOLS_BIN_FILE, "wp",0,0,0);
+#endif
+
 #ifdef __linux__
   // This one is actually fun to test, since dlopen is by default loaded...wonder why :)
   res += TestDynamicLoader("foobar.lib", "dlopen",0,1,0);