diff --git a/CMakeLists.txt b/CMakeLists.txt
index 62042e86e6442674057fcd828eaa54faef1d6fb3..f440ff92a54a0c4d48e6cc939b392585cbc55db2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -309,6 +309,14 @@ IF(NOT KWSYS_IN_SOURCE_BUILD)
     ${PROJECT_BINARY_DIR}/kwsysPrivate.h COPY_ONLY IMMEDIATE)
 ENDIF(NOT KWSYS_IN_SOURCE_BUILD)
 
+# Select plugin module file name convention.
+IF(NOT KWSYS_DynamicLoader_PREFIX)
+  SET(KWSYS_DynamicLoader_PREFIX ${CMAKE_SHARED_MODULE_PREFIX})
+ENDIF()
+IF(NOT KWSYS_DynamicLoader_SUFFIX)
+  SET(KWSYS_DynamicLoader_SUFFIX ${CMAKE_SHARED_MODULE_SUFFIX})
+ENDIF()
+
 #-----------------------------------------------------------------------------
 # We require ANSI support from the C compiler.  Add any needed flags.
 IF(CMAKE_ANSI_CFLAGS)
diff --git a/DynamicLoader.cxx b/DynamicLoader.cxx
index 58e02c76bd66c1ec95940d3c5b580c1812fb4262..c4ee095519fe27742a0a9a9e392be4ce095af423 100644
--- a/DynamicLoader.cxx
+++ b/DynamicLoader.cxx
@@ -69,19 +69,6 @@ DynamicLoader::GetSymbolAddress(DynamicLoader::LibraryHandle lib, const char* sy
   return *reinterpret_cast<DynamicLoader::SymbolPointer*>(&result);
 }
 
-//----------------------------------------------------------------------------
-const char* DynamicLoader::LibPrefix()
-{
-  return "lib";
-}
-
-//----------------------------------------------------------------------------
-const char* DynamicLoader::LibExtension()
-{
-  return ".sl";
-}
-
-//----------------------------------------------------------------------------
 const char* DynamicLoader::LastError()
 {
   // TODO: Need implementation with errno/strerror
@@ -175,21 +162,6 @@ DynamicLoader::SymbolPointer DynamicLoader::GetSymbolAddress(
   return *reinterpret_cast<DynamicLoader::SymbolPointer*>(&result);
 }
 
-//----------------------------------------------------------------------------
-const char* DynamicLoader::LibPrefix()
-{
-  return "lib";
-}
-
-//----------------------------------------------------------------------------
-const char* DynamicLoader::LibExtension()
-{
-  // NSCreateObjectFileImageFromFile fail when dealing with dylib image
-  // it returns NSObjectFileImageInappropriateFile
-  //return ".dylib";
-  return ".so";
-}
-
 //----------------------------------------------------------------------------
 const char* DynamicLoader::LastError()
 {
@@ -284,22 +256,6 @@ DynamicLoader::SymbolPointer DynamicLoader::GetSymbolAddress(
 #endif
 }
 
-//----------------------------------------------------------------------------
-const char* DynamicLoader::LibPrefix()
-{
-#ifdef __MINGW32__
-  return "lib";
-#else
-  return "";
-#endif
-}
-
-//----------------------------------------------------------------------------
-const char* DynamicLoader::LibExtension()
-{
-  return ".dll";
-}
-
 //----------------------------------------------------------------------------
 const char* DynamicLoader::LastError()
 {
@@ -417,18 +373,6 @@ DynamicLoader::SymbolPointer DynamicLoader::GetSymbolAddress(
   return result.psym;
 }
 
-//----------------------------------------------------------------------------
-const char* DynamicLoader::LibPrefix()
-{
-  return "lib";
-}
-
-//----------------------------------------------------------------------------
-const char* DynamicLoader::LibExtension()
-{
-  return ".so";
-}
-
 //----------------------------------------------------------------------------
 const char* DynamicLoader::LastError()
 {
@@ -475,18 +419,6 @@ DynamicLoader::SymbolPointer DynamicLoader::GetSymbolAddress(
   return 0;
 }
 
-//----------------------------------------------------------------------------
-const char* DynamicLoader::LibPrefix()
-  {
-  return "lib";
-  }
-
-//----------------------------------------------------------------------------
-const char* DynamicLoader::LibExtension()
-  {
-  return ".a";
-  }
-
 //----------------------------------------------------------------------------
 const char* DynamicLoader::LastError()
   {
@@ -539,22 +471,6 @@ DynamicLoader::SymbolPointer DynamicLoader::GetSymbolAddress(
   return result.psym;
 }
 
-//----------------------------------------------------------------------------
-const char* DynamicLoader::LibPrefix()
-{
-  return "lib";
-}
-
-//----------------------------------------------------------------------------
-const char* DynamicLoader::LibExtension()
-{
-#ifdef __CYGWIN__
-  return ".dll";
-#else
-  return ".so";
-#endif
-}
-
 //----------------------------------------------------------------------------
 const char* DynamicLoader::LastError()
 {
diff --git a/DynamicLoader.hxx.in b/DynamicLoader.hxx.in
index 325e956fe55a97a9dfebcc88dbefcb6d2c19fa8d..64468ecd37b74d5573d90b7f245a9ef886b6c2e1 100644
--- a/DynamicLoader.hxx.in
+++ b/DynamicLoader.hxx.in
@@ -86,11 +86,11 @@ public:
   /** Find the address of the symbol in the given library. */
   static SymbolPointer GetSymbolAddress(LibraryHandle, const char*);
 
-  /** Return the library prefix for the given architecture */
-  static const char* LibPrefix();
+  /** Return the default module prefix for the current platform.  */
+  static const char* LibPrefix() { return "@KWSYS_DynamicLoader_PREFIX@"; }
 
-  /** Return the library extension for the given architecture. */
-  static const char* LibExtension();
+  /** Return the default module suffix for the current platform.  */
+  static const char* LibExtension() { return "@KWSYS_DynamicLoader_SUFFIX@"; }
 
   /** Return the last error produced from a calls made on this class. */
   static const char* LastError();
diff --git a/kwsysDateStamp.cmake b/kwsysDateStamp.cmake
index 1a0fec76f8b2ed6aa68dfe3a45bf45ccdd5dcb9f..627d15ae1035b8a902312de2698d2e91cc5a0117 100644
--- a/kwsysDateStamp.cmake
+++ b/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@ SET(KWSYS_DATE_STAMP_YEAR  2010)
 SET(KWSYS_DATE_STAMP_MONTH 06)
 
 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   04)
+SET(KWSYS_DATE_STAMP_DAY   10)