diff --git a/docs/releases/v2.11.1.md b/docs/releases/v2.11.1.md
index dd1b4527b946752e42337b60a83c353b2108b912..3c4b52dceda310dbf1790cef6ff3b245e5875ffa 100644
--- a/docs/releases/v2.11.1.md
+++ b/docs/releases/v2.11.1.md
@@ -5,6 +5,7 @@
 - Allow point assignment result to be sorted
 - Allow point assignment result to be downloaded as csv
 - Informs user when atlas download should be occurring, and check popup blocker
+- Restores Julich Brain 2.9 in Colin 27 space full mesh view
 
 ## Bugfixes
 
diff --git a/src/viewerModule/nehuba/layerCtrl.service/layerCtrl.service.ts b/src/viewerModule/nehuba/layerCtrl.service/layerCtrl.service.ts
index f68170be4a59e2610000d997b852084512529dc4..5f1e17c0fbf181b76652db731c1e6fa2dac1ad5f 100644
--- a/src/viewerModule/nehuba/layerCtrl.service/layerCtrl.service.ts
+++ b/src/viewerModule/nehuba/layerCtrl.service/layerCtrl.service.ts
@@ -46,8 +46,9 @@ export class NehubaLayerControlService implements OnDestroy{
     combineLatest([
       this.completeNgIdLabelRegionMap$,
       this.customLayers$,
+      this.selectedRegion$,
     ]).pipe(
-      map(([record, layers]) => {
+      map(([record, layers, selectedRegions]) => {
         const returnVal: IColorMap = {}
 
         const cmCustomLayers = layers.filter(l => l.clType === "customlayer/colormap") as atlasAppearance.const.ColorMapCustomLayer[]
@@ -72,11 +73,15 @@ export class NehubaLayerControlService implements OnDestroy{
             get: (r: SxplrRegion) => r.color
           }
         })()
+
+        const selectedRegionNameSet = new Set(selectedRegions.map(v => v.name))
         
         for (const [ngId, labelRecord] of Object.entries(record)) {
           for (const [label, region] of Object.entries(labelRecord)) {
             if (!region.color) continue
-            const [ red, green, blue ] = useCm.get(region) || [200, 200, 200]
+            const [ red, green, blue ] = selectedRegionNameSet.size === 0 || selectedRegionNameSet.has(region.name)
+              ? useCm.get(region) || [200, 200, 200]
+              : [255, 255, 255]
             if (!returnVal[ngId]) {
               returnVal[ngId] = {}
             }
diff --git a/src/viewerModule/nehuba/mesh.service/mesh.service.ts b/src/viewerModule/nehuba/mesh.service/mesh.service.ts
index 29a40e94c6882b6022033b2d55103627d3d9b8cf..d46e128f4a84d082272101b67a215bf75d5165c3 100644
--- a/src/viewerModule/nehuba/mesh.service/mesh.service.ts
+++ b/src/viewerModule/nehuba/mesh.service/mesh.service.ts
@@ -7,6 +7,7 @@ import { selectorAuxMeshes } from "../store";
 import { LayerCtrlEffects } from "../layerCtrl.service/layerCtrl.effects";
 import { atlasSelection } from "src/state";
 import { BaseService } from "../base.service/base.service";
+import { IDS } from "src/atlasComponents/sapi"
 
 /**
  * control mesh loading etc
@@ -126,8 +127,21 @@ export class NehubaMeshService implements OnDestroy {
     this.#allSegmentMeshes$,
     this.#selectedSegmentMeshes$,
     this.#auxMesh$,
+    this.store$.pipe(
+      select(atlasSelection.selectors.selectedTemplate)
+    ),
+    this.store$.pipe(
+      select(atlasSelection.selectors.selectedParcellation)
+    )
   ]).pipe(
-    switchMap(([ allSegMesh, selectedSegMesh, auxmesh ]) => {
+    switchMap(([ allSegMesh, selectedSegMesh, auxmesh, selectedTemplate, selectedParcellation ]) => {
+      /**
+       * TODO monkey patching jba29 in colin to show all meshes
+       * 
+       */
+      if (selectedParcellation.id === IDS.PARCELLATION.JBA29 && selectedTemplate.id === IDS.TEMPLATES.COLIN27) {
+        return of(...allSegMesh)
+      }
       const hasSegSelected = selectedSegMesh.some(v => v.labelIndicies.length !== 0)
       const hasAuxMesh = auxmesh.length > 0
       const meshesToLoad: IMeshesToLoad[] = []