diff --git a/all/golangconfig.py b/all/golangconfig.py
index a59386d..d73d72c 100644
--- a/all/golangconfig.py
+++ b/all/golangconfig.py
@@ -465,7 +465,7 @@
 
     window_settings = {}
     if window:
-        if sys.version_info >= (3,):
+        if sys.version_info >= (3,) and window.project_data():
             window_settings = window.project_data().get('settings', {}).get('golang', {})
         elif not view and window.active_view():
             window_settings = window.active_view().settings().get('golang', {})
diff --git a/dev/mocks.py b/dev/mocks.py
index 3085c70..daac24c 100644
--- a/dev/mocks.py
+++ b/dev/mocks.py
@@ -30,7 +30,10 @@
         if self.window():
             # In Sublime Text, View objects inherit settings from the window/project
             # unless they are explicitly set on the view, so we replicate that here
-            merged_golang_settings = self.window().project_data().get('settings', {}).get('golang', {}).copy()
+            merged_golang_settings = {}
+            project_data = self.window().project_data()
+            if project_data:
+                merged_golang_settings.update(project_data.get('settings', {}).get('golang', {}).copy())
             merged_golang_settings.update(self._settings)
         elif self._settings:
             merged_golang_settings = self._settings.copy()
@@ -52,6 +55,8 @@
         self._context = context
 
     def project_data(self):
+        if self._settings is None:
+            return None
         return {'settings': {'golang': self._settings}}
 
     def active_view(self):
@@ -214,8 +219,6 @@
 
     @property
     def window(self):
-        if self._window_settings is None:
-            return None
         return SublimeWindowMock(self._window_settings, self)
 
     @property
