Index: rsvg-cairo-draw.c
===================================================================
--- rsvg-cairo-draw.c	(révision 1090)
+++ rsvg-cairo-draw.c	(copie de travail)
@@ -80,6 +80,42 @@ _rsvg_cairo_set_operator (cairo_t * cr, 
     case RSVG_COMP_OP_XOR:
         op = CAIRO_OPERATOR_XOR;
         break;
+    case RSVG_COMP_OP_PLUS:
+	op = CAIRO_OPERATOR_ADD;
+	break;
+    case RSVG_COMP_OP_MULTIPLY:
+	op = CAIRO_OPERATOR_MULTIPLY;
+	break;
+    case RSVG_COMP_OP_SCREEN:
+	op = CAIRO_OPERATOR_SCREEN;
+	break;
+    case RSVG_COMP_OP_OVERLAY:
+	op = CAIRO_OPERATOR_OVERLAY;
+	break;
+    case RSVG_COMP_OP_DARKEN:
+	op = CAIRO_OPERATOR_DARKEN;
+	break;
+    case RSVG_COMP_OP_LIGHTEN:
+	op = CAIRO_OPERATOR_LIGHTEN;
+	break;
+    case RSVG_COMP_OP_COLOR_DODGE:
+	op = CAIRO_OPERATOR_COLOR_DODGE;
+	break;
+    case RSVG_COMP_OP_COLOR_BURN:
+	op = CAIRO_OPERATOR_COLOR_BURN;
+	break;
+    case RSVG_COMP_OP_HARD_LIGHT:
+	op = CAIRO_OPERATOR_HARD_LIGHT;
+	break;
+    case RSVG_COMP_OP_SOFT_LIGHT:
+	op = CAIRO_OPERATOR_SOFT_LIGHT;
+	break;
+    case RSVG_COMP_OP_DIFFERENCE:
+	op = CAIRO_OPERATOR_DIFFERENCE;
+	break;
+    case RSVG_COMP_OP_EXCLUSION:
+	op = CAIRO_OPERATOR_EXCLUSION;
+	break;
     default:
         op = CAIRO_OPERATOR_OVER;
         break;
Index: rsvg-styles.c
===================================================================
--- rsvg-styles.c	(révision 1090)
+++ rsvg-styles.c	(copie de travail)
@@ -432,6 +432,30 @@ rsvg_parse_style_arg (RsvgHandle * ctx, 
             state->comp_op = RSVG_COMP_OP_DST_ATOP;
         else if (!strcmp (str + arg_off, "xor"))
             state->comp_op = RSVG_COMP_OP_XOR;
+        else if (!strcmp (str + arg_off, "plus"))
+            state->comp_op = RSVG_COMP_OP_PLUS;
+        else if (!strcmp (str + arg_off, "multiply"))
+            state->comp_op = RSVG_COMP_OP_MULTIPLY;
+        else if (!strcmp (str + arg_off, "screen"))
+            state->comp_op = RSVG_COMP_OP_SCREEN;
+        else if (!strcmp (str + arg_off, "overlay"))
+            state->comp_op = RSVG_COMP_OP_OVERLAY;
+        else if (!strcmp (str + arg_off, "darken"))
+            state->comp_op = RSVG_COMP_OP_DARKEN;
+        else if (!strcmp (str + arg_off, "lighten"))
+            state->comp_op = RSVG_COMP_OP_LIGHTEN;
+        else if (!strcmp (str + arg_off, "color-dodge"))
+            state->comp_op = RSVG_COMP_OP_COLOR_DODGE;
+        else if (!strcmp (str + arg_off, "color-burn"))
+            state->comp_op = RSVG_COMP_OP_COLOR_BURN;
+        else if (!strcmp (str + arg_off, "hard-light"))
+            state->comp_op = RSVG_COMP_OP_HARD_LIGHT;
+        else if (!strcmp (str + arg_off, "soft-light"))
+            state->comp_op = RSVG_COMP_OP_SOFT_LIGHT;
+        else if (!strcmp (str + arg_off, "difference"))
+            state->comp_op = RSVG_COMP_OP_DIFFERENCE;
+        else if (!strcmp (str + arg_off, "exclusion"))
+            state->comp_op = RSVG_COMP_OP_EXCLUSION;
         else
             state->comp_op = RSVG_COMP_OP_SRC_OVER;
     } else if (rsvg_css_param_match (str, "display")) {
Index: rsvg-styles.h
===================================================================
--- rsvg-styles.h	(révision 1090)
+++ rsvg-styles.h	(copie de travail)
@@ -72,7 +72,19 @@ typedef enum {
     RSVG_COMP_OP_DST_OUT,
     RSVG_COMP_OP_SRC_ATOP,
     RSVG_COMP_OP_DST_ATOP,
-    RSVG_COMP_OP_XOR
+    RSVG_COMP_OP_XOR,
+    RSVG_COMP_OP_PLUS,
+    RSVG_COMP_OP_MULTIPLY,
+    RSVG_COMP_OP_SCREEN,
+    RSVG_COMP_OP_OVERLAY,
+    RSVG_COMP_OP_DARKEN,
+    RSVG_COMP_OP_LIGHTEN,
+    RSVG_COMP_OP_COLOR_DODGE,
+    RSVG_COMP_OP_COLOR_BURN,
+    RSVG_COMP_OP_HARD_LIGHT,
+    RSVG_COMP_OP_SOFT_LIGHT,
+    RSVG_COMP_OP_DIFFERENCE,
+    RSVG_COMP_OP_EXCLUSION
 } RsvgCompOpType;
 
 typedef enum {
