diff --git a/src/main/java/org/apache/maven/plugins/gpg/GpgVersion.java b/src/main/java/org/apache/maven/plugins/gpg/GpgVersion.java
index 6e64577..35b33e0 100644
--- a/src/main/java/org/apache/maven/plugins/gpg/GpgVersion.java
+++ b/src/main/java/org/apache/maven/plugins/gpg/GpgVersion.java
@@ -47,13 +47,13 @@
     @Override
     public int compareTo( GpgVersion other )
     {
-        Pattern p = Pattern.compile( "([.\\d]+)$" );
+        Pattern p = Pattern.compile( "(\\d+\\.)+(\\d+)" );
 
         String[] thisSegments;
         Matcher m = p.matcher( rawVersion );
         if ( m.find() )
         {
-            thisSegments  = m.group( 1 ).split( "\\." );
+            thisSegments  = m.group( 0 ).split( "\\." );
         }
         else
         {
@@ -64,7 +64,7 @@
         m = p.matcher( other.rawVersion );
         if ( m.find() )
         {
-            otherSegments  = m.group( 1 ).split( "\\." );
+            otherSegments  = m.group( 0 ).split( "\\." );
         }
         else
         {
diff --git a/src/test/java/org/apache/maven/plugins/gpg/GpgVersionTest.java b/src/test/java/org/apache/maven/plugins/gpg/GpgVersionTest.java
index fb6bf47..337416d 100644
--- a/src/test/java/org/apache/maven/plugins/gpg/GpgVersionTest.java
+++ b/src/test/java/org/apache/maven/plugins/gpg/GpgVersionTest.java
@@ -19,11 +19,13 @@
  * under the License.
  */
 
-import static org.junit.Assert.assertTrue;
-
-import org.apache.maven.plugins.gpg.GpgVersion;
 import org.junit.Test;
 
+import static org.junit.Assert.assertTrue;
+
+/**
+ * Tests for {@link GpgVersion}.
+ */
 public class GpgVersionTest
 {
     @Test
@@ -32,6 +34,8 @@
         assertTrue( GpgVersion.parse( "gpg (GnuPG) 2.2.1" ).isAtLeast( GpgVersion.parse( "gpg (GnuPG) 2.2.1" ) ) );
         assertTrue( GpgVersion.parse( "gpg (GnuPG) 2.2.1" ).isAtLeast( GpgVersion.parse( "2.1" ) ) );
         assertTrue( GpgVersion.parse( "gpg (GnuPG/MacGPG2) 2.2.10" ).isAtLeast( GpgVersion.parse( "2.2.10" ) ) );
+        assertTrue( GpgVersion.parse( "gpg (GnuPG) 2.0.26 (Gpg4win 2.2.3)" )
+                .isAtLeast( GpgVersion.parse( "2.0.26" ) ) );
     }
 
 }
