--- gimp-2.9.2/app/main.c.orig	2014-02-27 14:45:08.125400000 +0400
+++ gimp-2.9.2/app/main.c	2014-02-27 15:05:28.119200000 +0400
@@ -345,6 +245,33 @@
       goto out;
 
     SetDllDirectoryW (w_bin_dir);
+
+  /* Add ourself to system path */
+  {
+    int result = 0;
+    static char progpath[PATH_MAX] = {'\0'};
+    char *path = getenv("PATH");
+    result = GetModuleFileNameA(NULL, progpath, PATH_MAX);
+    if (path) {
+      /* Add path of executable to system path. */
+      char *module_path = progpath;
+      char *new_path = alloca(strlen("PATH=")+strlen(module_path)+1+strlen(path)+1);
+      if (new_path) {
+        strcpy( new_path, "PATH=" );
+        strcat( new_path, module_path );
+        char *slashes = strchr( new_path, '/' );
+        while (slashes) {
+          *slashes = '\\';
+          slashes = strchr( slashes+1, '/' );
+        }
+        char *end = strrchr(new_path, '\\') ? strrchr(new_path, '\\') : new_path + strlen(new_path);
+        end[0] = ';';
+        end[1] = '\0';
+        strcat( new_path, path );
+        putenv( new_path );
+      }
+    }
+  }
 
   out:
     if (w_bin_dir)
