diff --git a/org.lamport.tla.toolbox.tool.tla2tex/src/org/lamport/tla/toolbox/tool/tla2tex/TLA2TeXActivator.java b/org.lamport.tla.toolbox.tool.tla2tex/src/org/lamport/tla/toolbox/tool/tla2tex/TLA2TeXActivator.java
index ac224a1061d5bf5ee165a8f2472c5348e2b80502..0cb8ed1669466874e48756672aa5713ca832c08a 100644
--- a/org.lamport.tla.toolbox.tool.tla2tex/src/org/lamport/tla/toolbox/tool/tla2tex/TLA2TeXActivator.java
+++ b/org.lamport.tla.toolbox.tool.tla2tex/src/org/lamport/tla/toolbox/tool/tla2tex/TLA2TeXActivator.java
@@ -1,5 +1,9 @@
 package org.lamport.tla.toolbox.tool.tla2tex;
 
+import java.io.File;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.preference.IPreferenceStore;
 import org.eclipse.jface.util.IPropertyChangeListener;
 import org.eclipse.jface.util.PropertyChangeEvent;
 import org.lamport.tla.toolbox.AbstractTLCActivator;
@@ -12,12 +16,13 @@ import com.abstratt.graphviz.GraphVizActivator.DotMethod;
 /**
  * The activator class controls the plug-in life cycle
  */
-public class TLA2TeXActivator extends AbstractTLCActivator
-{
-
+public class TLA2TeXActivator extends AbstractTLCActivator {
     // The plug-in ID
     public static final String PLUGIN_ID = "org.lamport.tla.toolbox.tool.tlatex";
 
+    private static final boolean IS_WINDOWS = Platform.OS_WIN32.equals(Platform.getOS());
+    private static final String USR_LOCAL_BIN_PATH = "/usr/local/bin/dot";
+    
     // The shared instance
     private static TLA2TeXActivator plugin;
 
@@ -36,17 +41,7 @@ public class TLA2TeXActivator extends AbstractTLCActivator
 	private IPropertyChangeListener listener = new IPropertyChangeListener() {
 		public void propertyChange(PropertyChangeEvent event) {
 			if (ITLA2TeXPreferenceConstants.DOT_COMMAND.equals(event.getProperty())) {
-				final String dotCommand = (String) event.getNewValue();
-				if ("dot".equals(dotCommand)) {
-					// Setting it to "dot" implies auto lookup.
-					TLA2TeXActivator.this.logInfo("dot command set to automatic lookup.");
-					GraphVizActivator.getInstance().setDotSearchMethod(DotMethod.AUTO);
-				} else {
-					// Explicit path is given.
-					TLA2TeXActivator.this.logInfo("dot command set to: " + dotCommand);
-					GraphVizActivator.getInstance().setDotSearchMethod(DotMethod.MANUAL);
-					GraphVizActivator.getInstance().setManualDotPath(dotCommand);
-				}
+				configureGraphViz((String)event.getNewValue());
 			}
 		}
 	};
@@ -54,8 +49,7 @@ public class TLA2TeXActivator extends AbstractTLCActivator
     /**
      * The constructor
      */
-    public TLA2TeXActivator()
-    {
+    public TLA2TeXActivator() {
     	super(PLUGIN_ID);
     }
 
@@ -63,12 +57,13 @@ public class TLA2TeXActivator extends AbstractTLCActivator
      * (non-Javadoc)
      * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
      */
-    public void start(BundleContext context) throws Exception
-    {
+    public void start(BundleContext context) throws Exception {
         super.start(context);
         plugin = this;
         
-		getPreferenceStore().addPropertyChangeListener(listener);
+		final IPreferenceStore preferenceStore = getPreferenceStore();
+		preferenceStore.addPropertyChangeListener(listener);
+		configureGraphViz(preferenceStore.getString(ITLA2TeXPreferenceConstants.DOT_COMMAND));
     }
 
     /*
@@ -90,4 +85,32 @@ public class TLA2TeXActivator extends AbstractTLCActivator
     {
         return plugin;
     }
+    
+    private void configureGraphViz(final String dotLocationPreferenceValue) {
+    	// This will be blank if the user has never entered a value in the preference panel
+		String dotCommand = dotLocationPreferenceValue;
+		
+		// Per GitHub #412
+		if (!IS_WINDOWS
+					&& ((dotCommand == null)
+							|| (dotCommand.trim().length() == 0)
+							|| "dot".equals(dotCommand))) {
+			final File f = new File(USR_LOCAL_BIN_PATH);
+			
+			if (f.exists() && f.canExecute()) {
+				dotCommand = USR_LOCAL_BIN_PATH;
+			}
+		}
+		
+		if ("dot".equals(dotCommand)) {
+			// Setting it to "dot" implies auto lookup.
+			logInfo("dot command set to automatic lookup.");
+			GraphVizActivator.getInstance().setDotSearchMethod(DotMethod.AUTO);
+		} else {
+			// Explicit path is given.
+			logInfo("dot command set to: " + dotCommand);
+			GraphVizActivator.getInstance().setDotSearchMethod(DotMethod.MANUAL);
+			GraphVizActivator.getInstance().setManualDotPath(dotCommand);
+		}
+    }
 }