diff --git a/bundles/org.eclipse.equinox.region/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.region/META-INF/MANIFEST.MF
index e680ac7..3cc52a7 100644
--- a/bundles/org.eclipse.equinox.region/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.region/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-SymbolicName: org.eclipse.equinox.region
-Bundle-Version: 1.4.500.qualifier
+Bundle-Version: 1.4.600.qualifier
 Bundle-RequiredExecutionEnvironment: JavaSE-1.7
 Fragment-Host: system.bundle
 ExtensionBundle-Activator: org.eclipse.equinox.internal.region.RegionManager
diff --git a/bundles/org.eclipse.equinox.region/pom.xml b/bundles/org.eclipse.equinox.region/pom.xml
index 963b38f..5980858 100644
--- a/bundles/org.eclipse.equinox.region/pom.xml
+++ b/bundles/org.eclipse.equinox.region/pom.xml
@@ -19,6 +19,6 @@
   </parent>
   <groupId>org.eclipse.equinox</groupId>
   <artifactId>org.eclipse.equinox.region</artifactId>
-  <version>1.4.500-SNAPSHOT</version>
+  <version>1.4.600-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 </project>
diff --git a/bundles/org.eclipse.equinox.region/src/org/eclipse/equinox/internal/region/StandardRegionDigraphPersistence.java b/bundles/org.eclipse.equinox.region/src/org/eclipse/equinox/internal/region/StandardRegionDigraphPersistence.java
index 79447a2..f150db1 100644
--- a/bundles/org.eclipse.equinox.region/src/org/eclipse/equinox/internal/region/StandardRegionDigraphPersistence.java
+++ b/bundles/org.eclipse.equinox.region/src/org/eclipse/equinox/internal/region/StandardRegionDigraphPersistence.java
@@ -175,7 +175,7 @@
 					namespaceFilters = new ArrayList<>(numFilters);
 					filters.put(namespace, namespaceFilters);
 				}
-				namespaceFilters.add(FrameworkUtil.createFilter(filter));
+				namespaceFilters.add(StandardRegionFilterBuilder.createFilter(filter));
 			}
 		}
 		digraph.connect(tail, new StandardRegionFilter(filters), head);
diff --git a/bundles/org.eclipse.equinox.region/src/org/eclipse/equinox/internal/region/StandardRegionFilterBuilder.java b/bundles/org.eclipse.equinox.region/src/org/eclipse/equinox/internal/region/StandardRegionFilterBuilder.java
index b6cf224..7f33ecc 100644
--- a/bundles/org.eclipse.equinox.region/src/org/eclipse/equinox/internal/region/StandardRegionFilterBuilder.java
+++ b/bundles/org.eclipse.equinox.region/src/org/eclipse/equinox/internal/region/StandardRegionFilterBuilder.java
@@ -46,7 +46,7 @@
 		return this;
 	}
 
-	public Filter createFilter(String spec) throws InvalidSyntaxException {
+	public static Filter createFilter(String spec) throws InvalidSyntaxException {
 		// TODO need to use BundleContext.createFilter here
 		Filter filter = FrameworkUtil.createFilter(spec);
 		return (StandardRegionFilter.ALL.equals(filter)) ? StandardRegionFilter.ALL : filter;
@@ -73,8 +73,8 @@
 	private Collection<Filter> getNamespaceFilters(String namespace) {
 		Collection<Filter> namespaceFilters = policy.get(namespace);
 		if (namespaceFilters == null) {
-				// use set to avoid duplicates
-				namespaceFilters = new LinkedHashSet<Filter>();
+			// use set to avoid duplicates
+			namespaceFilters = new LinkedHashSet<Filter>();
 			policy.put(namespace, namespaceFilters);
 		}
 		return namespaceFilters;
