diff --git a/demumble.cc b/demumble.cc
index 835dbbe..f91f523 100644
--- a/demumble.cc
+++ b/demumble.cc
@@ -101,7 +101,7 @@
       char* end = cur + strlen(cur);
 
       while (cur != end) {
-        size_t special = strcspn(cur, "_?");
+        size_t special = strcspn(cur, "_?.");
         if (print_mode == kPrintAll)
           printf("%.*s", static_cast<int>(special), cur);
         else if (need_separator)
@@ -112,9 +112,10 @@
           break;
 
         size_t n_sym = 0;
-        if (*cur == '?')
-          while (cur + n_sym != end && is_mangle_char_win(cur[n_sym]))
+        if (*cur == '?' || *cur == '.')
+          do
             ++n_sym;
+          while (cur + n_sym != end && is_mangle_char_win(cur[n_sym]));
         else if (is_plausible_itanium_prefix(cur))
           while (cur + n_sym != end && is_mangle_char_itanium(cur[n_sym]))
             ++n_sym;
diff --git a/third_party/llvm/include/llvm/Demangle/MicrosoftDemangle.h b/third_party/llvm/include/llvm/Demangle/MicrosoftDemangle.h
index 382e794..45db2d5 100644
--- a/third_party/llvm/include/llvm/Demangle/MicrosoftDemangle.h
+++ b/third_party/llvm/include/llvm/Demangle/MicrosoftDemangle.h
@@ -153,7 +153,7 @@
 
   void dumpBackReferences();
 
-private:
+//private:
   SymbolNode *demangleEncodedSymbol(StringView &MangledName,
                                     QualifiedNameNode *QN);
   SymbolNode *demangleDeclarator(StringView &MangledName);
diff --git a/third_party/llvm/lib/Demangle/MicrosoftDemangle.cpp b/third_party/llvm/lib/Demangle/MicrosoftDemangle.cpp
index bf7d776..6402a54 100644
--- a/third_party/llvm/lib/Demangle/MicrosoftDemangle.cpp
+++ b/third_party/llvm/lib/Demangle/MicrosoftDemangle.cpp
@@ -2323,7 +2323,12 @@
   OutputStream S;
 
   StringView Name{MangledName};
-  SymbolNode *AST = D.parse(Name);
+  Node *AST = nullptr;
+  bool wasTypeinfoName;
+  if ((wasTypeinfoName = Name.consumeFront('.')))
+    AST = D.demangleType(Name, QualifierMangleMode::Result);
+  else
+    AST = D.parse(Name);
 
   if (Flags & MSDF_DumpBackrefs)
     D.dumpBackReferences();
@@ -2333,6 +2338,8 @@
   else if (!initializeOutputStream(Buf, N, S, 1024))
     InternalStatus = demangle_memory_alloc_failure;
   else {
+    if (wasTypeinfoName)
+      S << "typeinfo name for ";
     AST->output(S, OF_Default);
     S += '\0';
     if (N != nullptr)
