diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/semicolon/SmartSemicolonHandler.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/semicolon/SmartSemicolonHandler.java
index 7fca119..143b2d6 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/semicolon/SmartSemicolonHandler.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/commands/semicolon/SmartSemicolonHandler.java
@@ -82,7 +82,7 @@
       document.modify(new IUnitOfWork.Void<XtextResource>() {
         @Override public void process(XtextResource resource) {
           Protobuf root = resources.rootOf(resource);
-          if (!protobufs.isProto2(root) || !resource.getErrors().isEmpty()) {
+          if (!protobufs.isProto2(root) /*|| !resource.getErrors().isEmpty()*/) {
             return;
           }
           int offset = styledTextAccess.caretOffset();
@@ -118,6 +118,7 @@
         }
       });
     } catch (Throwable t) {
+      shouldInsertSemicolon.set(true);
       logger.error("Unable to generate tag number", t);
     }
     if (shouldInsertSemicolon.get()) {
