Keith - I just submitted a fix for that case. The new version should appear online in the morning. It happens because the result was essentially zero for some elements, but floating point arithmetic errors can drive a value less than zero, then a sqrt is taken.
Lennart - No, filter definitely does not assume that. However, nothing stops you from using this code as is with a minor trick.
1. Copy the correct number of points (based on the window size) at each end of the series to the other end.
2. Compute the windowed SD
3. Delete the created end point values.