diff --git a/lib/versioning/hashicorp/index.spec.ts b/lib/versioning/hashicorp/index.spec.ts
index 7b4ea524b523561327f1c24ef5cea02b4ad7b03b..52aac2ef2d0fc3844aa4aacb26427e8285606a00 100644
--- a/lib/versioning/hashicorp/index.spec.ts
+++ b/lib/versioning/hashicorp/index.spec.ts
@@ -67,6 +67,30 @@ describe('semver.getNewValue()', () => {
         newVersion: '2.0.7',
       })
     ).toEqual('~> 2.0.0');
+    expect(
+      semver.getNewValue({
+        currentValue: '~> 0.14.0',
+        rangeStrategy: 'replace',
+        currentVersion: '0.14.1',
+        newVersion: '0.15.0',
+      })
+    ).toEqual('~> 0.15.0');
+    expect(
+      semver.getNewValue({
+        currentValue: '~> 0.14.0',
+        rangeStrategy: 'replace',
+        currentVersion: '0.14.1',
+        newVersion: '0.15.1',
+      })
+    ).toEqual('~> 0.15.0');
+    expect(
+      semver.getNewValue({
+        currentValue: '~> 0.14.6',
+        rangeStrategy: 'replace',
+        currentVersion: '0.14.6',
+        newVersion: '0.15.0',
+      })
+    ).toEqual('~> 0.15.0');
   });
   it('handles comma dividers', () => {
     expect(
diff --git a/lib/versioning/hashicorp/index.ts b/lib/versioning/hashicorp/index.ts
index bef2ce223b93c9a248e967d7fb7f536d9db51ed0..ad1feef333baa0e12a6a82a59dc7728d684e4702 100644
--- a/lib/versioning/hashicorp/index.ts
+++ b/lib/versioning/hashicorp/index.ts
@@ -36,10 +36,14 @@ function getNewValue({
   newVersion,
 }: NewValueConfig): string {
   if (/~>\s*0\.\d+/.test(currentValue) && npm.getMajor(newVersion) === 0) {
-    return currentValue.replace(
-      /(~>\s*0\.).*$/,
-      `$1${npm.getMinor(newVersion)}`
-    );
+    const testFullVersion = /(~>\s*0\.)(\d+)\.\d$/;
+    let replaceValue = '';
+    if (testFullVersion.test(currentValue)) {
+      replaceValue = `$1${npm.getMinor(newVersion)}.0`;
+    } else {
+      replaceValue = `$1${npm.getMinor(newVersion)}$3`;
+    }
+    return currentValue.replace(/(~>\s*0\.)(\d+)(.*)$/, replaceValue);
   }
   // handle special ~> 1.2 case
   if (/(~>\s*)\d+\.\d+$/.test(currentValue)) {