diff -rupN proj-4.8.0/nad/testvarious proj-new/nad/testvarious
--- proj-4.8.0/nad/testvarious	2012-03-07 06:58:49.000000000 +0100
+++ proj-new/nad/testvarious	2012-03-09 09:18:49.000000000 +0100
@@ -340,7 +340,7 @@ $EXE +proj=latlong +ellps=sphere \
 EOF
 echo "Test geos on a sphere with alternate sweep" >> ${OUT}
 $EXE +proj=latlong +ellps=sphere \
- +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=sphere +sweep=y -E >>${OUT} <<EOF
+ +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=sphere +sweep=x -E >>${OUT} <<EOF
 16d11'8" 58d35'31"
 -43d11'47" -22d54'30"
 18d25'26" -33d55'31"
@@ -348,7 +348,7 @@ $EXE +proj=latlong +ellps=sphere \
 EOF
 echo "Test geos on a ellipsoid with alternate sweep" >> ${OUT}
 $EXE +proj=latlong +ellps=sphere \
- +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=WGS84 +sweep=y -E >>${OUT} <<EOF
+ +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=WGS84 +sweep=x -E >>${OUT} <<EOF
 16d11'8" 58d35'31"
 -43d11'47" -22d54'30"
 18d25'26" -33d55'31"
@@ -356,7 +356,7 @@ $EXE +proj=latlong +ellps=sphere \
 EOF
 echo "Test inv geos on a sphere with alternate sweep" >> ${OUT}
 $EXE +proj=latlong +ellps=sphere \
- +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=sphere +sweep=y -I -E >>${OUT} <<EOF
+ +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=sphere +sweep=x -I -E >>${OUT} <<EOF
 841586.28 4961396.21
 -3772913.22 -2339604.71
 1601377.77 -3415545.15
@@ -364,7 +364,7 @@ $EXE +proj=latlong +ellps=sphere \
 EOF
 echo "Test inv geos on a ellipsoid with alternate sweep" >> ${OUT}
 $EXE +proj=latlong +ellps=sphere \
- +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=WGS84 +sweep=y -I -E >>${OUT} <<EOF
+ +to +proj=geos +h=35785831.0 +lon_0=0 +ellps=WGS84 +sweep=x -I -E >>${OUT} <<EOF
 844731.03 4946509.59
 -3779077.27 -2327750.87
 1605067.15 -3400461.47
diff -rupN proj-4.8.0/src/PJ_geos.c proj-new/src/PJ_geos.c
--- proj-4.8.0/src/PJ_geos.c	2012-02-27 08:56:34.000000000 +0100
+++ proj-new/src/PJ_geos.c	2012-03-09 09:17:54.000000000 +0100
@@ -170,7 +170,7 @@ ENTRY0(geos)
                 (P->sweep_axis[0] != 'x' &&
                  P->sweep_axis[0] != 'y'))
               E_ERROR(-49);
-            if (P->sweep_axis[0] == 'y')
+            if (P->sweep_axis[0] == 'x')
               P->flip_axis = 1;
             else
               P->flip_axis = 0;
