How to simulate a Brownian motion with reflective barrier?

I am trying to simulate a one-dimensional Brownian motion with a barrier, i.e. it is not allowed to go below (for above) a certain value, in which case it is reflected as if it hit a wall. Unfortunately, the functions in Mathematica (Ito process, Weiner process, transformed process) do not allow this simple extension natively. I have searched the whole WWW to no avail.

Of course, one can always simulate it from scratch, but I wonder if there is a better alternative?

Reflection at zero of the Wiener process is relatively simple. The Wiener differential definitiion using SetDelayed:to yield an independent value at each call

dW  : = sigma (dt)^(1/2) RandomReal[NormalDistribution[0,1]] 

Typical is that the variance scales with t, teh standard deviation with t^(1/2)

A Wiener process wirth reflection at the origin is

W[n_,x0_]:.= Fold[ Abs[( #1 + #2) ]]&,  x0, Array[ (dW &)]

The Abs function reflects the path back onto the positive half line in the moment of tha passage through 0.

Its transition distribution follows from the mirror principle: It is the sum of the distribution with start point x0 and .-x0. This distribution is an even function, solves the diffusion equation on the half line, has the delta distribuition at x0 and has derivative zero at the boundary indicating that the diffusion current over the boundary is zero.

The common sense explanation for the Brownian motion with reflection is that any particle leaving over the boundary is replaced by an equally probable reflected path entering at the same moment.