Index: libpipi/trunk/pipi/filter/blur.c
===================================================================
--- libpipi/trunk/pipi/filter/blur.c	(revision 2618)
+++ libpipi/trunk/pipi/filter/blur.c	(revision 2619)
@@ -28,4 +28,9 @@
 #include "pipi_internals.h"
 
+/* Any standard deviation below this value will be rounded up, in order
+ * to avoid ridiculously low values. exp(-1/(2*0.2*0.2)) is < 10^-5 so
+ * there is little chance that any value below 0.2 will be useful. */
+#define BLUR_EPSILON 0.2
+
 pipi_image_t *pipi_gaussian_blur(pipi_image_t *src, float radius)
 {
@@ -43,4 +48,7 @@
     int x, y, i, w, h, kr, kw;
 
+    if(rx < BLUR_EPSILON) rx = BLUR_EPSILON;
+    if(ry < BLUR_EPSILON) ry = BLUR_EPSILON;
+
     w = src->w;
     h = src->h;
@@ -55,5 +63,5 @@
     buffer = malloc(w * h * 4 * sizeof(double));
 
-    kr = (int)(3. * rx + 0.99999);
+    kr = (int)(3. * rx + 1.99999);
     kw = 2 * kr + 1;
     K = -1. / (2. * rx * rx);
@@ -92,5 +100,5 @@
     free(kernel);
 
-    kr = (int)(3. * ry + 0.99999);
+    kr = (int)(3. * ry + 1.99999);
     kw = 2 * kr + 1;
     K = -1. / (2. * ry * ry);
