diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
new file mode 100644
index 697cf99..db52c77
*** a/doc/src/sgml/config.sgml
--- b/doc/src/sgml/config.sgml
*************** include 'filename'
*** 1416,1429 ****
          <literal>windows</> (for Windows shared memory), <literal>mmap</>
          (to simulate shared memory using memory-mapped files stored in the
          data directory), and <literal>none</> (to disable this feature).
!         Not all values are supported on all platforms; the first supported
!         option is the default for that platform.  The use of the
!         <literal>mmap</> option, which is not the default on any platform,
          is generally discouraged because the operating system may write
          modified pages back to disk repeatedly, increasing system I/O load;
          however, it may be useful for debugging, when the
          <literal>pg_dynshmem</> directory is stored on a RAM disk, or when
          other shared memory facilities are not available.
         </para>
        </listitem>
       </varlistentry>
--- 1416,1432 ----
          <literal>windows</> (for Windows shared memory), <literal>mmap</>
          (to simulate shared memory using memory-mapped files stored in the
          data directory), and <literal>none</> (to disable this feature).
!         Not all values are supported on all platforms.
!         The use of the <literal>mmap</> option
          is generally discouraged because the operating system may write
          modified pages back to disk repeatedly, increasing system I/O load;
          however, it may be useful for debugging, when the
          <literal>pg_dynshmem</> directory is stored on a RAM disk, or when
          other shared memory facilities are not available.
+         <application>initdb</> will select a suitable setting for the system.
+         The default, when not configured explicitely in
+         <filename>postgresql.conf</>, is to disable the use of dynamic shared
+         memory.
         </para>
        </listitem>
       </varlistentry>
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
new file mode 100644
index 1d094f0..e73f6c1
*** a/src/backend/utils/misc/guc.c
--- b/src/backend/utils/misc/guc.c
*************** static struct config_enum ConfigureNames
*** 3453,3459 ****
  			NULL
  		},
  		&dynamic_shared_memory_type,
! 		DEFAULT_DYNAMIC_SHARED_MEMORY_TYPE, dynamic_shared_memory_options,
  		NULL, NULL, NULL
  	},
  
--- 3453,3459 ----
  			NULL
  		},
  		&dynamic_shared_memory_type,
! 		DSM_IMPL_NONE, dynamic_shared_memory_options,
  		NULL, NULL, NULL
  	},
  
diff --git a/src/include/storage/dsm_impl.h b/src/include/storage/dsm_impl.h
new file mode 100644
index 6e2a013..aa3487a
*** a/src/include/storage/dsm_impl.h
--- b/src/include/storage/dsm_impl.h
***************
*** 26,41 ****
   */
  #ifdef WIN32
  #define USE_DSM_WINDOWS
- #define DEFAULT_DYNAMIC_SHARED_MEMORY_TYPE		DSM_IMPL_WINDOWS
  #else
  #ifdef HAVE_SHM_OPEN
  #define USE_DSM_POSIX
- #define DEFAULT_DYNAMIC_SHARED_MEMORY_TYPE		DSM_IMPL_POSIX
  #endif
  #define USE_DSM_SYSV
- #ifndef DEFAULT_DYNAMIC_SHARED_MEMORY_TYPE
- #define DEFAULT_DYNAMIC_SHARED_MEMORY_TYPE		DSM_IMPL_SYSV
- #endif
  #define USE_DSM_MMAP
  #endif
  
--- 26,36 ----
