diff --git a/NEWS b/NEWS
index a07b6a0c7994326660b1843ed5ca803224301d07..dcf182e0c3ce28f7e4651fb984917eff19b33e1a 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,8 @@ documents those changes that are of interest to users and admins.
  -- Added MpiDefault slurm.conf parameter.
  -- Remove KillTree configuration parameter (replace with
     "ProctrackType=proctrack/linuxproc")
+ -- Remove MpichGmDirectSupport configuration parameter (replace with
+    "MpiDefault=mpich-gm")
  -- Make default plugin be "none".
  -- Added mpi/none plugin and made it the default.
  -- Replace extern program_invocation_short_name with program_invocation_name
diff --git a/doc/html/quickstart_admin.html b/doc/html/quickstart_admin.html
index bb3c3a85763e036d8f588b41adef3de927d96e24..def63e285b460dc60d1d787504a0f18d6cbab50e 100644
--- a/doc/html/quickstart_admin.html
+++ b/doc/html/quickstart_admin.html
@@ -201,9 +201,9 @@ interconnects and is the prefered version of MPI for those systems.
 Set the <b>MpiDefault=none</b> configuration parameter in slurm.conf.</p>
 
 <p>For <a href="http://www.myricom.com/">Myrinet</a> systems, MPICH-GM
-is prefered. In order to use MPICH-GM, set <b>MpichGmDirectSupport=1</b>, 
-<b>MpiDefault=mpichgm</b>, and <b>ProctrackType=proctrack/linuxproc</b> 
-configuration parameters in slurm.conf.</p>
+is prefered. In order to use MPICH-GM, set <b>MpiDefault=mpichgm</b> and 
+<b>ProctrackType=proctrack/linuxproc</b> configuration parameters in 
+slurm.conf.</p>
 
 <p>HP customers would be well served by using 
 <a href="http://www.hp.com/go/mpi">HP-MPI</a>.</p>
diff --git a/doc/man/man5/slurm.conf.5 b/doc/man/man5/slurm.conf.5
index 349bd08129366520a4462fbeac3626504e5e707d..be96d06790319c479d3ece1a29f0b3fa312f45f7 100644
--- a/doc/man/man5/slurm.conf.5
+++ b/doc/man/man5/slurm.conf.5
@@ -224,11 +224,6 @@ Srun may override this configuration parameter in any case.
 Currently supported versions include: lam, mpich\-gm, mvapich, 
 and none (default, which works for many other versions of MPI).
 .TP
-\fBMpichGmDirectSupport\fR
-If set to "1", srun handles executable files linked with the MPICH-GM 
-library directly, not via mpirun that uses rsh. If set, \fBProctrackType\fR
-must also be set to "linuxproc".
-.TP
 \fBPluginDir\fR
 Identifies the places in which to look for SLURM plugins. 
 This is a colon-separated list of directories, like the PATH 
diff --git a/etc/slurm.conf.example b/etc/slurm.conf.example
index 239b41f23ff87bd88d7b5d45d094e40f2e7ad761..124039dcca00051922a23ed076aa15b66a17daae 100644
--- a/etc/slurm.conf.example
+++ b/etc/slurm.conf.example
@@ -355,11 +355,6 @@ JobAcctType=jobacct/none
 #                         and none (default, which works for most other versions
 #                         of MPI).
 #
-#    "MpichGmDirectSupport"
-#                       : if set to `1', srun handles executable files linked
-#                         with MPICH-GM library directly, not via mpirun that
-#                         uses rsh.
-#
 # Example:
 #
 # FastSchedule=0		# default is `1'
@@ -367,7 +362,6 @@ JobAcctType=jobacct/none
 # ReturnToService=1     	# default is `0'
 # MaxJobCount=10000		# Defaults to 2000
 # MpiDefault			# default is "none"
-# MpichGmDirectSupport=1	# default is `0'
 
 
 #
diff --git a/slurm/slurm.h.in b/slurm/slurm.h.in
index 64481dd1841bf425f805a4e651366e04b6ae8280..620edeb3f25f94f9bf5a190c6a8e298a979f7c24 100644
--- a/slurm/slurm.h.in
+++ b/slurm/slurm.h.in
@@ -512,7 +512,6 @@ typedef struct slurm_ctl_conf {
 	uint16_t max_job_cnt;	/* maximum number of active jobs */
 	uint16_t min_job_age;	/* COMPLETED jobs over this age (secs) 
 	                         * purged from in memory records */
-	uint16_t mpich_gm_dir;  /* MPICH-GM direct support */
 	char *mpi_default;	/* Default version of MPI in use */
 	char *plugindir;	/* pathname to plugins */
 	char *proctrack_type;	/* process tracking plugin type */
diff --git a/src/api/config_info.c b/src/api/config_info.c
index 5243fabd8b2d3626dd23bb7079c0ea83474393e7..dbc196e06e4ce6843f2d0266fa314f6050d020a8 100644
--- a/src/api/config_info.c
+++ b/src/api/config_info.c
@@ -109,8 +109,6 @@ void slurm_print_ctl_conf ( FILE* out,
 		slurm_ctl_conf_ptr->min_job_age);
 	fprintf(out, "MpiDefault        = %s\n",
 		slurm_ctl_conf_ptr->mpi_default);
-	fprintf(out, "MpichGmDirectSupport = %u\n", 
-		slurm_ctl_conf_ptr->mpich_gm_dir);
 	fprintf(out, "PluginDir         = %s\n", 
 		slurm_ctl_conf_ptr->plugindir);
 	fprintf(out, "ProctrackType     = %s\n",
diff --git a/src/common/read_config.c b/src/common/read_config.c
index f96a6c094381b3a9c855fb20ae1379154d8920eb..eb3b3001c79762e96af954015d5f59659f1b1017 100644
--- a/src/common/read_config.c
+++ b/src/common/read_config.c
@@ -367,7 +367,6 @@ init_slurm_conf (slurm_ctl_conf_t *ctl_conf_ptr)
 	ctl_conf_ptr->kill_wait			= (uint16_t) NO_VAL;
 	ctl_conf_ptr->max_job_cnt		= (uint16_t) NO_VAL;
 	ctl_conf_ptr->min_job_age		= (uint16_t) NO_VAL;
-	ctl_conf_ptr->mpich_gm_dir		= (uint16_t) NO_VAL;
 	xfree (ctl_conf_ptr->mpi_default);
 	xfree (ctl_conf_ptr->plugindir);
 	xfree (ctl_conf_ptr->proctrack_type);
@@ -673,7 +672,7 @@ parse_config_spec (char *in_line, slurm_ctl_conf_t *ctl_conf_ptr)
 		verbose("KillTree configuration parameter is defunct");
 		verbose("  mapping to ProctrackType=proctrack/linuxproc");
 		xfree(proctrack_type);
-		proctrack_type = xstrdup("proctrack/killtree");
+		proctrack_type = xstrdup("proctrack/linuxproc");
 	}
 
 	if ( kill_wait != -1) {
@@ -704,13 +703,10 @@ parse_config_spec (char *in_line, slurm_ctl_conf_t *ctl_conf_ptr)
 	}
 
 	if ( mpich_gm_dir != -1) {
-		if ( ctl_conf_ptr->mpich_gm_dir != (uint16_t) NO_VAL)
-			error (MULTIPLE_VALUE_MSG, "MpichGmDirectSupport");
-		if ((mpich_gm_dir < 0) || (mpich_gm_dir > 0xffff))
-			error("MpichGmDirectSupport=%ld is invalid", 
-				mpich_gm_dir);
-		else
-			ctl_conf_ptr->mpich_gm_dir = mpich_gm_dir;
+		verbose("MpichGmDirectSupport configuration parameter is defunct");
+		verbose("  mapping to ProctrackType=proctrack/linuxproc");
+		xfree(proctrack_type);
+		proctrack_type = xstrdup("proctrack/linuxproc");
 	}
 
 	if (mpi_default) {
@@ -1286,9 +1282,6 @@ validate_config (slurm_ctl_conf_t *ctl_conf_ptr)
 	if (ctl_conf_ptr->min_job_age == (uint16_t) NO_VAL)
 		ctl_conf_ptr->min_job_age = DEFAULT_MIN_JOB_AGE;
 
-	if (ctl_conf_ptr->mpich_gm_dir == (uint16_t) NO_VAL)
-		ctl_conf_ptr->mpich_gm_dir = DEFAULT_MPICH_GM_DIR;
-
 	if (ctl_conf_ptr->mpi_default == NULL)
 		ctl_conf_ptr->mpi_default = xstrdup(DEFAULT_MPI_DEFAULT);
 	if (ctl_conf_ptr->plugindir == NULL)
diff --git a/src/common/read_config.h b/src/common/read_config.h
index 0dad118aba106ee8da7207743f1f0aa2adebe93f..68be463082ae4d6991860e9659b4521f53b62bbc 100644
--- a/src/common/read_config.h
+++ b/src/common/read_config.h
@@ -46,7 +46,6 @@
 #define DEFAULT_KILL_WAIT           30
 #define DEFAULT_MAX_JOB_COUNT       2000
 #define DEFAULT_MIN_JOB_AGE         300
-#define DEFAULT_MPICH_GM_DIR        0
 #define DEFAULT_MPI_DEFAULT         "none"
 #ifdef HAVE_AIX		/* AIX specific default configuration parameters */
 #  define DEFAULT_CHECKPOINT_TYPE   "checkpoint/aix"
diff --git a/src/common/slurm_protocol_api.c b/src/common/slurm_protocol_api.c
index a38712e9a9a11e8d91b01786b0d8001c3906b079..0562079870a5e461883236f027a27b236cdf4a39 100644
--- a/src/common/slurm_protocol_api.c
+++ b/src/common/slurm_protocol_api.c
@@ -410,20 +410,6 @@ uint16_t slurm_get_wait_time(void)
 	return wait_time;
 }
 
-/* slurm_get_mpich_gm_dir
- * returns mpich_gm_dir from slurmctld_conf object
- * RET uint16_t	- mpich_gm_dir
- */
-uint16_t slurm_get_mpich_gm_dir(void)
-{
-	uint16_t mpich_gm_dir;
-
-	_lock_update_config();
-	mpich_gm_dir = slurmctld_conf.mpich_gm_dir;
-	slurm_mutex_unlock(&config_lock);
-	return mpich_gm_dir;
-}
-
 /* Change general slurm communication errors to slurmctld specific errors */
 static void _remap_slurmctld_errno(void)
 {
diff --git a/src/common/slurm_protocol_api.h b/src/common/slurm_protocol_api.h
index 92052ff18a03df16479537b90eaccbec4e401eed..5d7f448236d3f9d0ff63d110bc542e07245b98fe 100644
--- a/src/common/slurm_protocol_api.h
+++ b/src/common/slurm_protocol_api.h
@@ -188,12 +188,6 @@ char *slurm_get_switch_type(void);
  */
 uint16_t slurm_get_wait_time(void);
 
-/* slurm_get_mpich_gm_dir
- * returns mpich_gm_dir from slurmctld_conf object
- * RET uint16_t        - mpich_gm_dir
- */
-uint16_t slurm_get_mpich_gm_dir(void);
-
 /**********************************************************************\
  * general message management functions used by slurmctld, slurmd
 \**********************************************************************/
diff --git a/src/common/slurm_protocol_pack.c b/src/common/slurm_protocol_pack.c
index 4a88f54a82c5ec0a6656be83e5369e6584a08e1b..f4a0fd0bf6d6d9cef9ce2116cd4124509324b0bf 100644
--- a/src/common/slurm_protocol_pack.c
+++ b/src/common/slurm_protocol_pack.c
@@ -1812,7 +1812,6 @@ _pack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t * build_ptr, Buf buffer)
 	pack16(build_ptr->max_job_cnt, buffer);
 	pack16(build_ptr->min_job_age, buffer);
 	packstr(build_ptr->mpi_default, buffer);
-	pack16(build_ptr->mpich_gm_dir, buffer);
 	packstr(build_ptr->plugindir, buffer);
 	packstr(build_ptr->proctrack_type, buffer);
 	packstr(build_ptr->prolog, buffer);
@@ -1884,7 +1883,6 @@ _unpack_slurm_ctl_conf_msg(slurm_ctl_conf_info_msg_t **
 	safe_unpack16(&build_ptr->max_job_cnt, buffer);
 	safe_unpack16(&build_ptr->min_job_age, buffer);
 	safe_unpackstr_xmalloc(&build_ptr->mpi_default, &uint16_tmp, buffer);
-	safe_unpack16(&build_ptr->mpich_gm_dir, buffer);
 	safe_unpackstr_xmalloc(&build_ptr->plugindir, &uint16_tmp, buffer);
 	safe_unpackstr_xmalloc(&build_ptr->proctrack_type, &uint16_tmp, buffer);
 	safe_unpackstr_xmalloc(&build_ptr->prolog, &uint16_tmp, buffer);
diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c
index 48500b173fca69cea28e69c95eac87ebe539a23c..8598dbf6b3796ca303c533772da00251b128c4e2 100644
--- a/src/slurmctld/proc_req.c
+++ b/src/slurmctld/proc_req.c
@@ -303,7 +303,6 @@ void _fill_ctld_conf(slurm_ctl_conf_t * conf_ptr)
 	conf_ptr->max_job_cnt         = slurmctld_conf.max_job_cnt;
 	conf_ptr->min_job_age         = slurmctld_conf.min_job_age;
 	conf_ptr->mpi_default         = xstrdup(slurmctld_conf.mpi_default);
-	conf_ptr->mpich_gm_dir        = slurmctld_conf.mpich_gm_dir;
 	conf_ptr->plugindir           = xstrdup(slurmctld_conf.plugindir);
 	conf_ptr->proctrack_type      = xstrdup(slurmctld_conf.proctrack_type);
 	conf_ptr->prolog              = xstrdup(slurmctld_conf.prolog);