--- ./src/eog-application.c.orig	2015-03-19 21:02:08.000000000 +0100
+++ ./src/eog-application.c	2015-03-25 21:54:04.447015200 +0100
@@ -318,8 +318,20 @@
 	g_object_unref (provider);
 
 	/* Add application specific icons to search path */
+	gchar * eog_data_dir;
+#ifdef G_OS_WIN32
+{
+        gchar *dir;
+
+        dir = g_win32_get_package_installation_directory_of_module (NULL);
+        eog_data_dir = g_build_filename (dir, "share", "eog", "icons", NULL);
+        g_free (dir);
+}
+#else
+        eog_data_dir = g_strdup (EOG_DATA_DIR G_DIR_SEPARATOR_S "icons");
+#endif
 	gtk_icon_theme_append_search_path (gtk_icon_theme_get_default (),
-                                           EOG_DATA_DIR G_DIR_SEPARATOR_S "icons");
+                                           eog_data_dir);
 
 	gtk_window_set_default_icon_name ("eog");
 	g_set_application_name (_("Image Viewer"));
@@ -342,6 +354,7 @@
 			  G_CALLBACK (on_extension_removed), app);
 
 	peas_extension_set_call (app->priv->extensions, "activate");
+	g_free(eog_data_dir);
 }
 
 static void
--- ./src/eog-plugin-engine.c.orig	2014-01-13 21:17:51.000000000 +0100
+++ ./src/eog-plugin-engine.c	2015-03-25 21:58:09.584059500 +0100
@@ -150,10 +150,33 @@
 	}
 
 	/* Find system-wide plugins */
+#ifdef G_OS_WIN32
+{
+	gchar *dir;
+	gchar *eog_plugin_dir;
+	gchar *eog_data_plugin_dir;
+	gchar *debug_message;
+
+	dir = g_win32_get_package_installation_directory_of_module (NULL);
+	eog_plugin_dir = g_build_filename (dir, "lib", "eog", "plugins", NULL);
+	eog_data_plugin_dir = g_build_filename (dir, "share", "eog", "plugins", NULL);
+	g_free (dir);
+
+	debug_message = g_strdup_printf ("Adding system plugin dir (%s) to plugins search path", eog_plugin_dir);
+	eog_debug_message (DEBUG_PLUGINS, debug_message);
+	peas_engine_add_search_path (PEAS_ENGINE (engine),
+				     eog_plugin_dir, eog_data_plugin_dir);
+
+	g_free (eog_plugin_dir);
+	g_free (eog_data_plugin_dir);
+	g_free (debug_message);
+}
+#else
 	eog_debug_message (DEBUG_PLUGINS, "Adding system plugin dir ("
 	                   EOG_PLUGIN_DIR ")to plugins search path");
 	peas_engine_add_search_path (PEAS_ENGINE (engine),
 				     EOG_PLUGIN_DIR, EOG_PLUGIN_DATA_DIR);
+#endif
 
 	g_settings_bind (engine->priv->plugins_settings,
 			 EOG_CONF_PLUGINS_ACTIVE_PLUGINS,
--- ./src/main.c.orig	2015-02-08 15:16:05.000000000 +0100
+++ ./src/main.c	2015-03-25 21:54:04.655026900 +0100
@@ -92,7 +92,17 @@
 	GError *error = NULL;
 	GOptionContext *ctx;
 
+#ifdef G_OS_WIN32
+{
+	gchar *dir;
+
+	dir = g_win32_get_package_installation_directory_of_module (NULL);
+	bindtextdomain (PACKAGE, g_build_filename (dir, "share", "locale", NULL));
+	g_free (dir);
+}
+#else
 	bindtextdomain (PACKAGE, EOG_LOCALE_DIR);
+#endif
 	bind_textdomain_codeset (PACKAGE, "UTF-8");
 	textdomain (PACKAGE);
 
