diff --git a/dbus/dbus-backtrace-win.c b/dbus/dbus-backtrace-win.c
index d9bc2dc4..2285f4a7 100644
--- a/dbus/dbus-backtrace-win.c
+++ b/dbus/dbus-backtrace-win.c
@@ -111,6 +111,14 @@ static void dump_backtrace_for_thread (HANDLE hThread)
   sf.AddrBStore.Mode  = AddrModeFlat;
   sf.AddrStack.Offset = context.IntSp;
   sf.AddrStack.Mode   = AddrModeFlat;
+#elif defined(_M_ARM64)
+  dwImageType         = IMAGE_FILE_MACHINE_ARM64;
+  sf.AddrPC.Offset    = context.Pc;
+  sf.AddrPC.Mode      = AddrModeFlat;
+  sf.AddrFrame.Offset = context.Fp;
+  sf.AddrFrame.Mode   = AddrModeFlat;
+  sf.AddrStack.Offset = context.Sp;
+  sf.AddrStack.Mode   = AddrModeFlat;
 #else
 # error You need to fill in the STACKFRAME structure for your architecture
 #endif
