diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c
index f852d50..be1082b 100644
--- a/src/cairo-gstate.c
+++ b/src/cairo-gstate.c
@@ -492,7 +492,7 @@ _cairo_gstate_get_line_join (cairo_gstat
 }
 
 cairo_status_t
-_cairo_gstate_set_dash (cairo_gstate_t *gstate, double *dash, int num_dashes, double offset)
+_cairo_gstate_set_dash (cairo_gstate_t *gstate, const double *dash, int num_dashes, double offset)
 {
     int i;
     double dash_total;
diff --git a/src/cairo.c b/src/cairo.c
index 551de6f..d6ca2b0 100644
--- a/src/cairo.c
+++ b/src/cairo.c
@@ -929,7 +929,7 @@ cairo_set_line_join (cairo_t *cr, cairo_
  **/
 void
 cairo_set_dash (cairo_t	*cr,
-		double	*dashes,
+		const double	*dashes,
 		int	 num_dashes,
 		double	 offset)
 {
diff --git a/src/cairo.h b/src/cairo.h
index e5349c9..611ac6e 100644
--- a/src/cairo.h
+++ b/src/cairo.h
@@ -419,7 +419,7 @@ cairo_set_line_join (cairo_t *cr, cairo_
 
 cairo_public void
 cairo_set_dash (cairo_t	*cr,
-		double	*dashes,
+		const double	*dashes,
 		int	 num_dashes,
 		double	 offset);
 
diff --git a/src/cairoint.h b/src/cairoint.h
index 9ecb072..4eb0c3c 100644
--- a/src/cairoint.h
+++ b/src/cairoint.h
@@ -1162,7 +1162,7 @@ cairo_private cairo_line_join_t
 _cairo_gstate_get_line_join (cairo_gstate_t *gstate);
 
 cairo_private cairo_status_t
-_cairo_gstate_set_dash (cairo_gstate_t *gstate, double *dash, int num_dashes, double offset);
+_cairo_gstate_set_dash (cairo_gstate_t *gstate, const double *dash, int num_dashes, double offset);
 
 cairo_private cairo_status_t
 _cairo_gstate_set_miter_limit (cairo_gstate_t *gstate, double limit);
