return d, ok
				}
			}
		})

		It("calls through to the inner connection", func() {
			reader := &bytes.Buffer{}

			err := conn.StreamIn("beethoven", garden.StreamInSpec{
				Path:      "/dev/sound",
				User:      "******",
				TarStream: reader,
			})
			Ω(err).ShouldNot(HaveOccurred())

			Ω(innerConnection.StreamInCallCount()).Should(Equal(1))
			handle, spec := innerConnection.StreamInArgsForCall(0)
			Ω(handle).Should(Equal("beethoven"))
			Ω(spec.Path).Should(Equal("/dev/sound"))
			Ω(spec.User).Should(Equal("bach"))
			Ω(spec.TarStream).Should(Equal(reader))
		})

		It("does not retry as the other end of the connection may have already started reading the body", func() {
			reader := &bytes.Buffer{}

			innerConnection.StreamInReturns(retryableErrors[0])

			err := conn.StreamIn("beethoven", garden.StreamInSpec{
				Path:      "/dev/sound",
				User:      "******",
					return d, ok
				}
			}
		})

		It("calls through to the inner connection", func() {
			reader := &bytes.Buffer{}

			err := conn.StreamIn("beethoven", garden.StreamInSpec{
				Path:      "/dev/sound",
				User:      "******",
				TarStream: reader,
			})
			Expect(err).NotTo(HaveOccurred())

			Expect(innerConnection.StreamInCallCount()).To(Equal(1))
			handle, spec := innerConnection.StreamInArgsForCall(0)
			Expect(handle).To(Equal("beethoven"))
			Expect(spec.Path).To(Equal("/dev/sound"))
			Expect(spec.User).To(Equal("bach"))
			Expect(spec.TarStream).To(Equal(reader))
		})

		It("does not retry as the other end of the connection may have already started reading the body", func() {
			reader := &bytes.Buffer{}

			innerConnection.StreamInReturns(retryableErrors[0])

			err := conn.StreamIn("beethoven", garden.StreamInSpec{
				Path:      "/dev/sound",
				User:      "******",