DatasetIOService fails with remote images

This (groovy) script works fine:

#@DatasetIOService datasetIOService
#@DisplayService displayService

ds = datasetIOService.open("http://wsr.imagej.net/images/boats.gif");
displayService.createDisplay(ds)

but this one throws an UnsupportedOperationException:

#@SciView sciView
#@DatasetIOService datasetIOService
#@DisplayService displayService

ds = datasetIOService.open("http://wsr.imagej.net/images/t1-head.zip");
displayService.createDisplay(ds)
java.lang.UnsupportedOperationException: Attempting to read or write from a io.scif.io.VirtualHandle. There is no source to operate on.
	at io.scif.io.VirtualHandle.read(VirtualHandle.java:89)
	at io.scif.io.RandomAccessInputStream.read(RandomAccessInputStream.java:448)
	at java.io.FilterInputStream.read(FilterInputStream.java:133)
	at java.io.PushbackInputStream.read(PushbackInputStream.java:186)
	at java.util.zip.ZipInputStream.readFully(ZipInputStream.java:403)
	at java.util.zip.ZipInputStream.readLOC(ZipInputStream.java:278)
	at java.util.zip.ZipInputStream.getNextEntry(ZipInputStream.java:122)
	at io.scif.formats.ZipFormat$ZipUtilities.unzipId(ZipFormat.java:294)
	at io.scif.formats.ZipFormat$Parser.typedParse(ZipFormat.java:171)
	at io.scif.formats.ZipFormat$Parser.typedParse(ZipFormat.java:148)
	at io.scif.AbstractParser.parse(AbstractParser.java:252)
	at io.scif.formats.ZipFormat$Parser.parse(ZipFormat.java:161)
	at io.scif.formats.ZipFormat$Parser.parse(ZipFormat.java:148)
	at io.scif.AbstractParser.parse(AbstractParser.java:335)
	at io.scif.AbstractParser.parse(AbstractParser.java:51)
	at io.scif.AbstractReader.setSource(AbstractReader.java:269)
	at io.scif.services.DefaultInitializeService.initializeReader(DefaultInitializeService.java:89)
	at io.scif.img.ImgOpener.createReader(ImgOpener.java:419)
	at io.scif.img.ImgOpener.openImgs(ImgOpener.java:145)
	at io.scif.services.DefaultDatasetIOService.open(DefaultDatasetIOService.java:125)
	at io.scif.services.DefaultDatasetIOService.open(DefaultDatasetIOService.java:110)
	at io.scif.services.DatasetIOService$open.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
	at Script23.run(Script23.groovy:5)
	at org.scijava.plugins.scripting.groovy.GroovyScriptEngine.eval(GroovyScriptEngine.java:303)
	at org.scijava.plugins.scripting.groovy.GroovyScriptEngine.eval(GroovyScriptEngine.java:122)
	at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264)
	at org.scijava.script.ScriptModule.run(ScriptModule.java:160)
	at org.scijava.module.ModuleRunner.run(ModuleRunner.java:168)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:127)
	at org.scijava.module.ModuleRunner.call(ModuleRunner.java:66)
	at org.scijava.thread.DefaultThreadService$3.call(DefaultThreadService.java:238)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

Actually, it seems to fail with any sample images that has depth. It the images are saved locally them the exception is not thrown, so it appears to be an issue with remote images only. Also, is there a reason why stacks are open as virtual images when DatasetIOService is used?