 +
 +	if (active) {
 +		return 0;
++	}
++
++	if ( globus_thread_set_model( "pthread" ) ) {
++		grid_proxy_errmsg = "failed to activate Globus";
++		return -1;
 +	}
 +
 +	if ( globus_module_activate(GLOBUS_GSI_CREDENTIAL_MODULE) ) {

 	}
 
  	if ((limit_command_output == limited_proxy_name) &&
@@ -2694,8 +2819,7 @@
 		}
 	} 
 

 #include "blahpd.h"
 #include "config.h"
 #include "job_registry.h"
@@ -2583,13 +2586,166 @@
 	return(result);
 }
 
