diff --git a/contrib/earthdistance/Makefile b/contrib/earthdistance/Makefile
index cde1ae630fe138abb137c4b4597dc0d4b1965715..765f5e2ef8aa592f1cc7a475d73f52bd3165b236 100644
--- a/contrib/earthdistance/Makefile
+++ b/contrib/earthdistance/Makefile
@@ -3,7 +3,8 @@
 MODULES = earthdistance
 
 EXTENSION = earthdistance
-DATA = earthdistance--1.0.sql earthdistance--unpackaged--1.0.sql
+DATA = earthdistance--1.1.sql earthdistance--1.0--1.1.sql \
+	earthdistance--unpackaged--1.0.sql
 PGFILEDESC = "earthdistance - calculate distances on the surface of the Earth"
 
 REGRESS = earthdistance
diff --git a/contrib/earthdistance/earthdistance--1.0--1.1.sql b/contrib/earthdistance/earthdistance--1.0--1.1.sql
new file mode 100644
index 0000000000000000000000000000000000000000..802f1515a8939234862e3d6e58d3cf57a89ed623
--- /dev/null
+++ b/contrib/earthdistance/earthdistance--1.0--1.1.sql
@@ -0,0 +1,14 @@
+/* contrib/earthdistance/earthdistance--1.0--1.1.sql */
+
+-- complain if script is sourced in psql, rather than via ALTER EXTENSION
+\echo Use "ALTER EXTENSION earthdistance UPDATE TO '1.1'" to load this file. \quit
+
+ALTER FUNCTION earth() PARALLEL SAFE;
+ALTER FUNCTION sec_to_gc(float8) PARALLEL SAFE;
+ALTER FUNCTION gc_to_sec(float8) PARALLEL SAFE;
+ALTER FUNCTION ll_to_earth(float8, float8) PARALLEL SAFE;
+ALTER FUNCTION latitude(earth) PARALLEL SAFE;
+ALTER FUNCTION longitude(earth) PARALLEL SAFE;
+ALTER FUNCTION earth_distance(earth, earth) PARALLEL SAFE;
+ALTER FUNCTION earth_box(earth, float8) PARALLEL SAFE;
+ALTER FUNCTION geo_distance(point, point) PARALLEL SAFE;
diff --git a/contrib/earthdistance/earthdistance--1.0.sql b/contrib/earthdistance/earthdistance--1.1.sql
similarity index 92%
rename from contrib/earthdistance/earthdistance--1.0.sql
rename to contrib/earthdistance/earthdistance--1.1.sql
index 4af9062e7d8536126bbabfcac2f25adf0a943b7c..657d328ebbbe64dba1920890bca50f58a2bf2527 100644
--- a/contrib/earthdistance/earthdistance--1.0.sql
+++ b/contrib/earthdistance/earthdistance--1.1.sql
@@ -1,4 +1,4 @@
-/* contrib/earthdistance/earthdistance--1.0.sql */
+/* contrib/earthdistance/earthdistance--1.1.sql */
 
 -- complain if script is sourced in psql, rather than via CREATE EXTENSION
 \echo Use "CREATE EXTENSION earthdistance" to load this file. \quit
@@ -8,7 +8,7 @@
 -- in order to use different units (or a better value for the Earth's radius).
 
 CREATE FUNCTION earth() RETURNS float8
-LANGUAGE SQL IMMUTABLE
+LANGUAGE SQL IMMUTABLE PARALLEL SAFE
 AS 'SELECT ''6378168''::float8';
 
 -- Astromers may want to change the earth function so that distances will be
@@ -37,49 +37,56 @@ CREATE FUNCTION sec_to_gc(float8)
 RETURNS float8
 LANGUAGE SQL
 IMMUTABLE STRICT
+PARALLEL SAFE
 AS 'SELECT CASE WHEN $1 < 0 THEN 0::float8 WHEN $1/(2*earth()) > 1 THEN pi()*earth() ELSE 2*earth()*asin($1/(2*earth())) END';
 
 CREATE FUNCTION gc_to_sec(float8)
 RETURNS float8
 LANGUAGE SQL
 IMMUTABLE STRICT
+PARALLEL SAFE
 AS 'SELECT CASE WHEN $1 < 0 THEN 0::float8 WHEN $1/earth() > pi() THEN 2*earth() ELSE 2*earth()*sin($1/(2*earth())) END';
 
 CREATE FUNCTION ll_to_earth(float8, float8)
 RETURNS earth
 LANGUAGE SQL
 IMMUTABLE STRICT
+PARALLEL SAFE
 AS 'SELECT cube(cube(cube(earth()*cos(radians($1))*cos(radians($2))),earth()*cos(radians($1))*sin(radians($2))),earth()*sin(radians($1)))::earth';
 
 CREATE FUNCTION latitude(earth)
 RETURNS float8
 LANGUAGE SQL
 IMMUTABLE STRICT
+PARALLEL SAFE
 AS 'SELECT CASE WHEN cube_ll_coord($1, 3)/earth() < -1 THEN -90::float8 WHEN cube_ll_coord($1, 3)/earth() > 1 THEN 90::float8 ELSE degrees(asin(cube_ll_coord($1, 3)/earth())) END';
 
 CREATE FUNCTION longitude(earth)
 RETURNS float8
 LANGUAGE SQL
 IMMUTABLE STRICT
+PARALLEL SAFE
 AS 'SELECT degrees(atan2(cube_ll_coord($1, 2), cube_ll_coord($1, 1)))';
 
 CREATE FUNCTION earth_distance(earth, earth)
 RETURNS float8
 LANGUAGE SQL
 IMMUTABLE STRICT
+PARALLEL SAFE
 AS 'SELECT sec_to_gc(cube_distance($1, $2))';
 
 CREATE FUNCTION earth_box(earth, float8)
 RETURNS cube
 LANGUAGE SQL
 IMMUTABLE STRICT
+PARALLEL SAFE
 AS 'SELECT cube_enlarge($1, gc_to_sec($2), 3)';
 
 --------------- geo_distance
 
 CREATE FUNCTION geo_distance (point, point)
 RETURNS float8
-LANGUAGE C IMMUTABLE STRICT AS 'MODULE_PATHNAME';
+LANGUAGE C IMMUTABLE STRICT PARALLEL SAFE AS 'MODULE_PATHNAME';
 
 --------------- geo_distance as operator <@>
 
diff --git a/contrib/earthdistance/earthdistance.control b/contrib/earthdistance/earthdistance.control
index afd2ff4f95502ed1fb4ab09f390ca541d6f0496e..5816d22cdd98810f75f4a2a4dc34ae32510e496a 100644
--- a/contrib/earthdistance/earthdistance.control
+++ b/contrib/earthdistance/earthdistance.control
@@ -1,6 +1,6 @@
 # earthdistance extension
 comment = 'calculate great-circle distances on the surface of the Earth'
-default_version = '1.0'
+default_version = '1.1'
 module_pathname = '$libdir/earthdistance'
 relocatable = true
 requires = 'cube'