diff -u --recursive gnumeric-1.10.1-vanilla/component/gnumeric.c gnumeric-1.10.1-runtime-dirs/component/gnumeric.c
--- gnumeric-1.10.1-vanilla/component/gnumeric.c	2010-04-09 15:42:52.000000000 -0500
+++ gnumeric-1.10.1-runtime-dirs/component/gnumeric.c	2010-04-09 17:21:36.000000000 -0500
@@ -273,7 +273,7 @@
 	go_gnm_component_register_type (module);
 	gnm_init ();
 	if (!gnm_sys_data_dir ())
-		gutils_init ();
+		gutils_init (NULL, NULL);
 	dir_list = go_slist_create (
 		g_build_filename (gnm_sys_lib_dir (), PLUGIN_SUBDIR, NULL),
 		(gnm_usr_dir () == NULL ? NULL :
diff -u --recursive gnumeric-1.10.1-vanilla/src/gutils.c gnumeric-1.10.1-runtime-dirs/src/gutils.c
--- gnumeric-1.10.1-vanilla/src/gutils.c	2010-04-09 15:42:55.000000000 -0500
+++ gnumeric-1.10.1-runtime-dirs/src/gutils.c	2010-04-09 16:30:17.000000000 -0500
@@ -67,19 +67,15 @@
 }
 
 void
-gutils_init (void)
+gutils_init (const char *param_data_dir, const char *param_lib_dir)
 {
 	char const *home_dir;
 #ifdef G_OS_WIN32
-	gchar *dir = g_win32_get_package_installation_directory_of_module (NULL);
-	gnumeric_lib_dir = g_build_filename (dir, "lib",
-					     "gnumeric", GNM_VERSION_FULL,
-					     NULL);
-	gnumeric_data_dir = g_build_filename (dir, "share",
-					      "gnumeric", GNM_VERSION_FULL,
-					      NULL);
+	gchar *dir = g_win32_get_package_installation_directory (NULL, NULL);
+	gnumeric_lib_dir = param_lib_dir ? g_strdup(param_lib_dir) : g_build_filename(g_win32_get_package_installation_directory (NULL, NULL), "share", "gnumeric", GNM_VERSION_FULL, NULL);
+	gnumeirc_data_dir = param_data_dir ? g_strdup(param_data_dir) : g_build_filename(g_win32_get_package_installation_directory (NULL, NULL), "lib", "gnumeric", GNM_VERSION_FULL, NULL);
 	gnumeric_icon_dir = g_build_filename (dir, "share", "pixmaps",
-					      "gnumeric", NULL);
+                                              "gnumeric", NULL);
 	gnumeric_locale_dir = g_build_filename (dir, "share", "locale", NULL);
 	g_free (dir);
 #else
@@ -99,8 +95,8 @@
 	}
 
 	if (!gnumeric_lib_dir)
-		gnumeric_lib_dir = g_strdup (GNUMERIC_LIBDIR);
-	gnumeric_data_dir = g_strdup (GNUMERIC_DATADIR);
+		gnumeric_lib_dir = param_lib_dir ? g_strdup(param_lib_dir) : g_strdup (GNUMERIC_LIBDIR);
+	gnumeric_data_dir = param_data_dir ? g_strdup(param_data_dir) : g_strdup (GNUMERIC_DATADIR);
 	gnumeric_icon_dir = g_strdup (GNUMERIC_ICONDIR);
 	gnumeric_locale_dir = g_strdup (GNUMERIC_LOCALEDIR);
 #endif
diff -u --recursive gnumeric-1.10.1-vanilla/src/gutils.h gnumeric-1.10.1-runtime-dirs/src/gutils.h
--- gnumeric-1.10.1-vanilla/src/gutils.h	2010-04-09 15:42:55.000000000 -0500
+++ gnumeric-1.10.1-runtime-dirs/src/gutils.h	2010-04-09 15:46:36.000000000 -0500
@@ -8,7 +8,7 @@
 
 G_BEGIN_DECLS
 
-void gutils_init (void);
+void gutils_init (const char *param_data_dir, const char *param_lib_dir);
 void gutils_shutdown (void);
 
 /* System and user paths */
diff -u --recursive gnumeric-1.10.1-vanilla/src/libgnumeric.c gnumeric-1.10.1-runtime-dirs/src/libgnumeric.c
--- gnumeric-1.10.1-vanilla/src/libgnumeric.c	2010-04-09 15:42:55.000000000 -0500
+++ gnumeric-1.10.1-runtime-dirs/src/libgnumeric.c	2010-04-09 15:47:52.000000000 -0500
@@ -192,17 +192,6 @@
 	/* Make stdout line buffered - we only use it for debug info */
 	setvbuf (stdout, NULL, _IOLBF, 0);
 
-	gutils_init ();
-
-	bindtextdomain (GETTEXT_PACKAGE, gnm_locale_dir ());
-	bindtextdomain (GETTEXT_PACKAGE "-functions", gnm_locale_dir ());
-	textdomain (GETTEXT_PACKAGE);
-
-	/* Force all of the locale segments to update from the environment.
-	 * Unless we do this they will default to C
-	 */
-	setlocale (LC_ALL, "");
-
 	return argv;
 }
 
@@ -247,6 +236,17 @@
 void
 gnm_init (void)
 {
+	gutils_init (param_data_dir, param_lib_dir);
+
+	bindtextdomain (GETTEXT_PACKAGE, gnm_locale_dir ());
+	bindtextdomain (GETTEXT_PACKAGE "-functions", gnm_locale_dir ());
+	textdomain (GETTEXT_PACKAGE);
+
+	/* Force all of the locale segments to update from the environment.
+	 * Unless we do this they will default to C
+	 */
+	setlocale (LC_ALL, "");
+
 	call_gnome_vfs_init ();
 
 	libgoffice_init ();
