Index: java/FramclipsePlugin/META-INF/MANIFEST.MF
===================================================================
--- java/FramclipsePlugin/META-INF/MANIFEST.MF	(revision 55)
+++ java/FramclipsePlugin/META-INF/MANIFEST.MF	(revision 56)
@@ -13,5 +13,6 @@
  org.eclipse.ui.workbench.texteditor,
  org.eclipse.ui.views,
- org.eclipse.ui.ide
+ org.eclipse.ui.ide,
+ org.eclipse.core.resources
 Eclipse-LazyStart: true
 Export-Package: 
Index: java/FramclipsePlugin/src/main/java/com/framsticks/framclipse/editors/configuration/ErrorHandler.java
===================================================================
--- java/FramclipsePlugin/src/main/java/com/framsticks/framclipse/editors/configuration/ErrorHandler.java	(revision 56)
+++ java/FramclipsePlugin/src/main/java/com/framsticks/framclipse/editors/configuration/ErrorHandler.java	(revision 56)
@@ -0,0 +1,51 @@
+package com.framsticks.framclipse.editors.configuration;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+
+import com.framsticks.framclipse.internal.parser.ParseException;
+import com.framsticks.framclipse.internal.parser.TokenMgrError;
+
+public abstract class ErrorHandler<T extends Throwable> {
+
+	public IMarker createMarker(IResource resource, T error) throws CoreException {
+		IMarker marker = resource.createMarker(IMarker.PROBLEM);
+		marker.setAttribute(IMarker.LINE_NUMBER, getLine(error));
+		marker.setAttribute(IMarker.MESSAGE, getMessage(error));
+		marker.setAttribute(IMarker.PRIORITY, IMarker.PRIORITY_HIGH);
+		marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
+		return marker;
+	}
+
+	public abstract int getLine(T error);
+
+	public abstract String getMessage(T error);
+
+	public static class ParseErrorHandler extends ErrorHandler<ParseException> {
+
+		@Override
+		public int getLine(ParseException e) {
+			return e.currentToken.next.beginLine;
+		}
+
+		@Override
+		public String getMessage(ParseException e) {
+			return e.getMessage();
+		}
+	}
+
+	public static class TokenErrorHandler extends ErrorHandler<TokenMgrError> {
+
+		@Override
+		public int getLine(TokenMgrError e) {
+			return 1;
+		}
+		
+		@Override
+		public String getMessage(TokenMgrError e) {
+			return e.getMessage();
+		}		
+	}
+
+}
Index: java/FramclipsePlugin/src/main/java/com/framsticks/framclipse/editors/configuration/FramclipseReconcilingStrategy.java
===================================================================
--- java/FramclipsePlugin/src/main/java/com/framsticks/framclipse/editors/configuration/FramclipseReconcilingStrategy.java	(revision 55)
+++ java/FramclipsePlugin/src/main/java/com/framsticks/framclipse/editors/configuration/FramclipseReconcilingStrategy.java	(revision 56)
@@ -7,4 +7,7 @@
 import java.util.List;
 
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
@@ -22,4 +25,5 @@
 import org.eclipse.ui.IPathEditorInput;
 import org.eclipse.ui.IURIEditorInput;
+import org.eclipse.ui.ide.ResourceUtil;
 
 import com.framsticks.framclipse.editors.FramclipseEditor;
@@ -33,4 +37,6 @@
 import com.framsticks.framclipse.internal.parser.FramclipseParser;
 import com.framsticks.framclipse.internal.parser.Node;
+import com.framsticks.framclipse.internal.parser.ParseException;
+import com.framsticks.framclipse.internal.parser.TokenMgrError;
 
 
@@ -89,8 +95,21 @@
 						viewer.setRedraw(false);
 						
-						parseDocument();
+						IResource resource = ResourceUtil.getResource(fEditor.getEditorInput());
+						resource.deleteMarkers(IMarker.PROBLEM, true, IResource.DEPTH_ZERO);
+
+						try {
+							parseDocument();
+						} catch (ParseException e) {
+							ErrorHandler<ParseException> handler = new ErrorHandler.ParseErrorHandler();
+							handler.createMarker(resource, e);
+						} catch (TokenMgrError e) {
+							ErrorHandler<TokenMgrError> handler = new ErrorHandler.TokenErrorHandler();
+							handler.createMarker(resource, e);
+						}
 						fEditor.updateOutlinePage();
 						
 						collectAndUpdateAnnotations();
+					} catch (CoreException e) {
+						e.printStackTrace();
 					}
 					finally
@@ -105,5 +124,5 @@
 	}
 	
-	void parseDocument()
+	void parseDocument() throws ParseException
 	{
 		
Index: java/FramclipsePlugin/src/main/java/com/framsticks/framclipse/editors/hover/FramscriptTextHover.java
===================================================================
--- java/FramclipsePlugin/src/main/java/com/framsticks/framclipse/editors/hover/FramscriptTextHover.java	(revision 55)
+++ java/FramclipsePlugin/src/main/java/com/framsticks/framclipse/editors/hover/FramscriptTextHover.java	(revision 56)
@@ -5,4 +5,5 @@
 import org.eclipse.jface.internal.text.html.BrowserInformationControl;
 import org.eclipse.jface.internal.text.html.HTMLTextPresenter;
+import org.eclipse.jface.resource.JFaceResources;
 import org.eclipse.jface.text.AbstractReusableInformationControlCreator;
 import org.eclipse.jface.text.BadLocationException;
@@ -35,10 +36,12 @@
 
 		public IInformationControl doCreateInformationControl(Shell parent) {
-			int shellStyle= SWT.RESIZE | SWT.TOOL;
-			int style= SWT.V_SCROLL | SWT.H_SCROLL;
-			if (BrowserInformationControl.isAvailable(parent))
-				return new BrowserInformationControl(parent, shellStyle, style);
-			else
-				return new DefaultInformationControl(parent, shellStyle, style, new HTMLTextPresenter(false));
+//			int shellStyle= SWT.RESIZE | SWT.TOOL;
+//			int style= SWT.V_SCROLL | SWT.H_SCROLL;
+//			if (BrowserInformationControl.isAvailable(parent)) {
+//				return new BrowserInformationControl(parent, JFaceResources.DIALOG_FONT, true);
+//				return new BrowserInformationControl(parent, shellStyle, style);
+//			} else
+//				return new DefaultInformationControl(parent, shellStyle, style, new HTMLTextPresenter(false));
+				return new DefaultInformationControl(parent, true);
 		}
 	}
@@ -47,8 +50,11 @@
 		
 		public IInformationControl doCreateInformationControl(Shell parent) {
-			if (BrowserInformationControl.isAvailable(parent))
-				return new BrowserInformationControl(parent, SWT.TOOL | SWT.NO_TRIM, SWT.NONE, EditorsUI.getTooltipAffordanceString());
-			else
-				return new DefaultInformationControl(parent, SWT.NONE, new HTMLTextPresenter(true), EditorsUI.getTooltipAffordanceString());
+//			if (BrowserInformationControl.isAvailable(parent)) {
+//				return new BrowserInformationControl(parent, JFaceResources.DIALOG_FONT, true);
+//				return new BrowserInformationControl(parent, SWT.TOOL | SWT.NO_TRIM, SWT.NONE, EditorsUI.getTooltipAffordanceString());
+//			} else {
+//				return new DefaultInformationControl(parent, SWT.NONE, new HTMLTextPresenter(true), EditorsUI.getTooltipAffordanceString());
+				return new DefaultInformationControl(parent, true);
+//			}
 		}
 
Index: java/FramclipsePlugin/src/main/java/com/framsticks/framclipse/internal/parser/FramclipseParser.java
===================================================================
--- java/FramclipsePlugin/src/main/java/com/framsticks/framclipse/internal/parser/FramclipseParser.java	(revision 55)
+++ java/FramclipsePlugin/src/main/java/com/framsticks/framclipse/internal/parser/FramclipseParser.java	(revision 56)
@@ -26,5 +26,5 @@
 	}
 	
-	public Node parse(String content, EditorType editorType, URL url) {
+	public Node parse(String content, EditorType editorType, URL url) throws ParseException {
 		if (editorType.equals(EditorType.FRAMSCRIPT)) {
 
@@ -66,5 +66,5 @@
 								} 
 								recursiveSetOffset(inc, inc.getBeginOffset(), inc.getEndOffset());
-							} catch (Throwable e) {
+							} catch (ParseException e) {
 								inc.setValid(false); 
 								System.err.println("In "+path+fname);
@@ -75,8 +75,12 @@
 				}
 				return model;
+			} catch (ParseException e) {
+				e.printStackTrace();
+				throw e;
+			} catch (TokenMgrError e) {
+				e.printStackTrace();
+				throw e;
 			} catch (Exception e) {
 				e.printStackTrace();
-			} catch (TokenMgrError err) {
-				err.printStackTrace();
 			}
 		}
