diff --git a/xtraplatform-features-gml/src/main/java/de/ii/xtraplatform/features/gml/domain/GeometryEncoderGml.java b/xtraplatform-features-gml/src/main/java/de/ii/xtraplatform/features/gml/domain/GeometryEncoderGml.java
index 992182fb2..06f0eb131 100644
--- a/xtraplatform-features-gml/src/main/java/de/ii/xtraplatform/features/gml/domain/GeometryEncoderGml.java
+++ b/xtraplatform-features-gml/src/main/java/de/ii/xtraplatform/features/gml/domain/GeometryEncoderGml.java
@@ -495,9 +495,7 @@ public Void visit(Polygon geometry) {
if (useSurfaceAndCurve) {
writeStartTagObject(RING, true);
writeStartTagProperty(CURVE_MEMBER);
- writeStartTagDataType(LINE_STRING_SEGMENT);
- writePositionList(ring.getValue().getCoordinates(), geometry.getAxes());
- writeEndTag();
+ ring.accept(encodeAsEmbeddedGeometry.orElse(this));
writeEndTag();
} else {
writeStartTagObject(LINEAR_RING, true);
diff --git a/xtraplatform-features-gml/src/test/groovy/de/ii/xtraplatform/features/gml/domain/GeometrySpec.groovy b/xtraplatform-features-gml/src/test/groovy/de/ii/xtraplatform/features/gml/domain/GeometrySpec.groovy
index bc5acd08a..5c6ed3ceb 100644
--- a/xtraplatform-features-gml/src/test/groovy/de/ii/xtraplatform/features/gml/domain/GeometrySpec.groovy
+++ b/xtraplatform-features-gml/src/test/groovy/de/ii/xtraplatform/features/gml/domain/GeometrySpec.groovy
@@ -445,7 +445,7 @@ class GeometrySpec extends Specification {
String gmlOut = sw.toString()
then:
- gmlOut == "0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0"
+ gmlOut == "0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0"
}
def 'CURVEPOLYGON XY with USE_SURFACE_RING_CURVE'() {