diff -u -p udev-106/udev_rules.j1.c udev-106/udev_rules.c
--- udev-106/udev_rules.j1.c	2007-03-15 10:07:51.000000000 -0700
+++ udev-106/udev_rules.c	2007-03-15 10:09:50.000000000 -0700
@@ -186,7 +186,16 @@ static int import_keys_into_env(struct u
 		linepos = line;
 		if (get_key(&linepos, &variable, &value) == 0) {
 			dbg("import '%s=%s'", variable, value);
-			name_list_key_add(&udev->env_list, variable, value);
+			/* handle device, renamed by external tool,
+			 * returning new path */
+			if (strcmp(variable, "DEVPATH") == 0) {
+				info("updating devpath from '%s' to '%s'",
+				     udev->dev->devpath, value);
+				sysfs_device_set_values(udev->dev, value,
+							NULL, NULL);
+			} else
+				name_list_key_add(&udev->env_list,
+						  variable, value);
 			setenv(variable, value, 1);
 		}
 	}
diff -u -p udev-106/udevtest.j1.c udev-106/udevtest.c
--- udev-106/udevtest.j1.c	2007-03-15 10:39:16.000000000 -0700
+++ udev-106/udevtest.c	2007-03-15 10:42:09.000000000 -0700
@@ -59,8 +59,13 @@ int main(int argc, char *argv[], char *e
 
 	info("version %s", UDEV_VERSION);
 	udev_config_init();
-	if (udev_log_priority < LOG_INFO)
+	if (udev_log_priority < LOG_INFO) {
+		char priority[32];
+
 		udev_log_priority = LOG_INFO;
+		sprintf(priority, "%i", udev_log_priority);
+		setenv("UDEV_LOG", priority, 1);
+	}
 
 	for (i = 1 ; i < argc; i++) {
 		char *arg = argv[i];