diff --git a/src/plugins/select/bluegene/plugin/select_bluegene.c b/src/plugins/select/bluegene/plugin/select_bluegene.c
index 9b6cc45508d9f4c7f6c87f1882de7b8cf388296d..2e013e34be7d16b2a01d69bd7504a210d2d6c9ad 100644
--- a/src/plugins/select/bluegene/plugin/select_bluegene.c
+++ b/src/plugins/select/bluegene/plugin/select_bluegene.c
@@ -104,6 +104,18 @@ extern int select_p_alter_node_cnt(enum select_node_cnt type, void *data);
  */
 extern int init ( void )
 {
+#ifdef HAVE_BG_FILES
+	char *lib_path = getenv("LD_LIBRARY_PATH");
+	char *new_libpath = xstrdup("LD_LIBRARY_PATH=");
+
+	if(lib_path)
+		xstrfmtcat(new_libpath, "%s:", lib_path);
+
+	xstrcat(new_libpath, BG_LIB_PATH);
+	putenv(new_libpath);
+	xfree(new_libpath);
+#endif
+
 #ifndef HAVE_BG
 	fatal("Plugin select/bluegene is illegal on non-BlueGene computers");
 #endif
@@ -124,6 +136,7 @@ extern int init ( void )
 	if ((SELECT_COPROCESSOR_MODE  != RM_PARTITION_COPROCESSOR_MODE)
 	||  (SELECT_VIRTUAL_NODE_MODE != RM_PARTITION_VIRTUAL_NODE_MODE))
 		fatal("enum node_use_type out of sync with rm_api.h");
+	
 #endif
 
 	verbose("%s loading...", plugin_name);