diff --git a/CHANGELOG.md b/CHANGELOG.md
index 20ecfd6dc..12fbb8b40 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 ## Changelog
 
+# 1.2.2
+
+### Bug Fixes:
+- Fix midpoint calculation when using mapbox-gl-draw with 3d terrain
+
 # 1.2.1
 
 ### Bug Fixes:
diff --git a/src/lib/create_midpoint.js b/src/lib/create_midpoint.js
index e58ff58cc..766eb8546 100644
--- a/src/lib/create_midpoint.js
+++ b/src/lib/create_midpoint.js
@@ -1,6 +1,6 @@
 import * as Constants from '../constants';
 
-export default function(parent, startVertex, endVertex, map) {
+export default function(parent, startVertex, endVertex) {
   const startCoord = startVertex.geometry.coordinates;
   const endCoord = endVertex.geometry.coordinates;
 
@@ -13,9 +13,10 @@ export default function(parent, startVertex, endVertex, map) {
     return null;
   }
 
-  const ptA = map.project([ startCoord[0], startCoord[1] ]);
-  const ptB = map.project([ endCoord[0], endCoord[1] ]);
-  const mid = map.unproject([ (ptA.x + ptB.x) / 2, (ptA.y + ptB.y) / 2 ]);
+  const mid = {
+    lng: (startCoord[0] + endCoord[0]) / 2,
+    lat: (startCoord[1] + endCoord[1]) / 2
+  };
 
   return {
     type: Constants.geojsonTypes.FEATURE,
diff --git a/src/lib/create_supplementary_points.js b/src/lib/create_supplementary_points.js
index 506941d5e..017a801bd 100644
--- a/src/lib/create_supplementary_points.js
+++ b/src/lib/create_supplementary_points.js
@@ -34,7 +34,7 @@ function createSupplementaryPoints(geojson, options = {}, basePath = null) {
       // vertex before this one. If so, add a midpoint
       // between that vertex and this one.
       if (options.midpoints && lastVertex) {
-        const midpoint = createMidpoint(featureId, lastVertex, vertex, options.map);
+        const midpoint = createMidpoint(featureId, lastVertex, vertex);
         if (midpoint) {
           supplementaryPoints.push(midpoint);
         }