diff --git a/packages/loot-core/src/shared/util.test.ts b/packages/loot-core/src/shared/util.test.ts
index d236a6652a826306e128bbfaca33d18634f07601..6d1945b2987f9cf5f7cc0fe99f4b77e1032678f7 100644
--- a/packages/loot-core/src/shared/util.test.ts
+++ b/packages/loot-core/src/shared/util.test.ts
@@ -2,7 +2,7 @@ import { looselyParseAmount, getNumberFormat, setNumberFormat } from './util';
 
 describe('utility functions', () => {
   test('looseParseAmount works with basic numbers', () => {
-    // Parsing is currently limited to 1,2 decimal places or 5.
+    // Parsing is currently limited to 1,2 decimal places or 5-9.
     // Ignoring 3 places removes the possibility of improper parse
     //  of amounts without decimal amounts included.
     expect(looselyParseAmount('3')).toBe(3);
@@ -10,12 +10,20 @@ describe('utility functions', () => {
     expect(looselyParseAmount('3.45')).toBe(3.45);
     expect(looselyParseAmount('3.456')).toBe(3456);
     expect(looselyParseAmount('3.45000')).toBe(3.45);
+    expect(looselyParseAmount('3.450000')).toBe(3.45);
+    expect(looselyParseAmount('3.4500000')).toBe(3.45);
+    expect(looselyParseAmount('3.45000000')).toBe(3.45);
+    expect(looselyParseAmount('3.450000000')).toBe(3.45);
   });
 
   test('looseParseAmount works with alternate formats', () => {
     expect(looselyParseAmount('3,45')).toBe(3.45);
     expect(looselyParseAmount('3,456')).toBe(3456);
     expect(looselyParseAmount('3,45000')).toBe(3.45);
+    expect(looselyParseAmount('3,450000')).toBe(3.45);
+    expect(looselyParseAmount('3,4500000')).toBe(3.45);
+    expect(looselyParseAmount('3,45000000')).toBe(3.45);
+    expect(looselyParseAmount('3,450000000')).toBe(3.45);
   });
 
   test('looseParseAmount works with negative numbers', () => {
diff --git a/packages/loot-core/src/shared/util.ts b/packages/loot-core/src/shared/util.ts
index 7429e58ef1b8f7ae836f48e0aedcd1100e17d707..460217745761ca4499458141ef751f72da501aea 100644
--- a/packages/loot-core/src/shared/util.ts
+++ b/packages/loot-core/src/shared/util.ts
@@ -409,9 +409,9 @@ export function looselyParseAmount(amount: string) {
     amount = amount.replace('(', '-').replace(')', '');
   }
 
-  //look for a decimal marker, then look for either 5 or 1-2 decimal places.
+  // Look for a decimal marker, then look for either 1-2 or 5-9 decimal places.
   // This avoids matching against 3 places which may not actually be decimal
-  const m = amount.match(/[.,]([^.,]{5}|[^.,]{1,2})$/);
+  const m = amount.match(/[.,]([^.,]{5,9}|[^.,]{1,2})$/);
   if (!m || m.index === undefined || m.index === 0) {
     return safeNumber(parseFloat(extractNumbers(amount)));
   }
diff --git a/upcoming-release-notes/2799.md b/upcoming-release-notes/2799.md
new file mode 100644
index 0000000000000000000000000000000000000000..a54578e360d998aba658a679713defb5644e0baf
--- /dev/null
+++ b/upcoming-release-notes/2799.md
@@ -0,0 +1,6 @@
+---
+category: Bugfix
+authors: [sreetamdas]
+---
+
+Fix amount parsing with 6-9 decimal places