diff --git a/js_subrequests.t b/js_subrequests.t
index c589a8d..8c99ff7 100644
--- a/js_subrequests.t
+++ b/js_subrequests.t
@@ -45,7 +45,8 @@
 
     js_include test.js;
 
-    js_set $async_var async_var;
+    js_set $async_var       async_var;
+    js_set $subrequest_var  subrequest_var;
 
     server {
         listen       127.0.0.1:8080;
@@ -108,6 +109,10 @@
             js_content sr_in_variable_handler;
         }
 
+        location /sr_detached_in_variable_handler {
+            return 200 $subrequest_var;
+        }
+
         location /sr_error_page {
             set $_ $async_var;
             error_page 404 /return;
@@ -236,6 +241,10 @@
             js_content body;
         }
 
+        location /detached {
+            js_content detached;
+        }
+
         location /delayed {
             js_content delayed;
         }
@@ -322,7 +331,14 @@
 
     function delayed(r) {
         setTimeout(r => r.return(200), 100, r);
-     }
+    }
+
+    function detached(r) {
+        var method = r.variables.request_method;
+        r.log(`DETACHED: \${method} args: \${r.variables.args}`);
+
+        r.return(200);
+    }
 
     function sr_in_variable_handler(r) {
     }
@@ -335,6 +351,14 @@
         return "";
     }
 
+    function subrequest_var(r) {
+        r.subrequest('/p/detached',  {detached:true});
+        r.subrequest('/p/detached',  {detached:true, args:'a=yyy',
+                                      method:'POST'});
+
+        return "subrequest_var";
+    }
+
     function sr_file(r) {
         r.subrequest('/file/t', body_fwd_cb);
     }
@@ -461,7 +485,7 @@
 
 $t->write_file('t', '["SEE-THIS"]');
 
-$t->try_run('no njs available')->plan(29);
+$t->try_run('no njs available')->plan(31);
 $t->run_daemon(\&http_daemon);
 
 ###############################################################################
@@ -502,9 +526,11 @@
 	'{"status":200,"uri":"/p/delayed"}]',
 	'sr_multi');
 
+my $ver = http_get('/njs');
+
 TODO: {
 local $TODO = 'not yet'
-	unless http_get('/njs') =~ /^([.0-9]+)$/m && $1 ge '0.3.8';
+	unless $ver =~ /^([.0-9]+)$/m && $1 ge '0.3.8';
 
 is(get_json('/sr_pr'), '{"h":"xxx"}', 'sr_promise');
 is(get_json('/sr_options_args_pr'), '{"h":"xxx"}', 'sr_options_args_pr');
@@ -516,6 +542,14 @@
 
 }
 
+TODO: {
+local $TODO = 'not yet'
+	unless $ver =~ /^([.0-9]+)$/m && $1 ge '0.3.9';
+
+like(http_get('/sr_detached_in_variable_handler'), qr/subrequest_var/,
+     'sr_detached_in_variable_handler');
+}
+
 http_get('/sr_broken');
 http_get('/sr_in_sr');
 http_get('/sr_in_variable_handler');
@@ -546,6 +580,14 @@
 		'js subrequest: failed to get the parent context') > 0,
 	'zero parent ctx');
 
+TODO: {
+local $TODO = 'not yet'
+	unless $ver =~ /^([.0-9]+)$/m && $1 ge '0.3.9';
+
+ok(index($t->read_file('error.log'), 'DETACHED') > 0,
+	'detached subrequest');
+}
+
 ###############################################################################
 
 sub recode {
