Index: src/uk/me/parabola/splitter/MultiTileProcessor.java
===================================================================
--- src/uk/me/parabola/splitter/MultiTileProcessor.java	(revision 263)
+++ src/uk/me/parabola/splitter/MultiTileProcessor.java	(working copy)
@@ -193,7 +193,7 @@
 			// add all ways and nodes of problem rels so that we collect the coordinates
 			markProblemMembers();
 			// we want to see the parent rels, but not all children of all parents 
-			markParentRels();
+			//markParentRels();
 			// free memory for rels that are not causing any trouble
 			Iterator<Entry<Long, MTRelation>> it = relMap.entrySet().iterator();
 			while (it.hasNext()) {
Index: src/uk/me/parabola/splitter/ProblemListProcessor.java
===================================================================
--- src/uk/me/parabola/splitter/ProblemListProcessor.java	(revision 263)
+++ src/uk/me/parabola/splitter/ProblemListProcessor.java	(working copy)
@@ -19,6 +19,7 @@
 
 import java.awt.Rectangle;
 import java.util.BitSet;
+import java.util.Iterator;
 
 /**
  * Find ways and relations that will be incomplete.
@@ -83,7 +84,8 @@
 	
 	@Override
 	public boolean skipTags() {
-		return true;
+		//return true;
+		return false;
 	}
 
 	@Override
@@ -177,6 +179,19 @@
 	@Override
 	public void processRelation(Relation rel) {
 		//BitSet writerSet = new BitSet();
+		boolean useThis = false;
+		Iterator<Element.Tag> tags = rel.tagsIterator();
+		while(tags.hasNext()) {
+			Element.Tag t = tags.next();
+			if ("type".equals(t.key)) {
+				if ("restriction multipolygon through_route".contains(t.value))
+					useThis = true;
+			}
+			if (useThis)
+				break;
+		}
+		if (!useThis)
+			return;
 		writerSet.clear();
 		Integer relWriterIdx;
 		if (!isFirstPass){
