Index: src/uk/me/parabola/imgfmt/app/mdr/MDRFile.java
===================================================================
--- src/uk/me/parabola/imgfmt/app/mdr/MDRFile.java	(revision 3878)
+++ src/uk/me/parabola/imgfmt/app/mdr/MDRFile.java	(working copy)
@@ -13,6 +13,7 @@
 package uk.me.parabola.imgfmt.app.mdr;
 
 import java.util.Arrays;
+import java.util.Set;
 
 import uk.me.parabola.imgfmt.app.BufferedImgFileReader;
 import uk.me.parabola.imgfmt.app.FileBackedImgFileWriter;
@@ -71,12 +72,13 @@
 
 	private final MdrSection[] sections;
 	private PointerSizes sizes;
+	private Set<String> mdr7Del; 
 
 	public MDRFile(ImgChannel chan, MdrConfig config) {
 		Sort sort = config.getSort();
 
 		forDevice = config.isForDevice();
-
+		mdr7Del = config.getMdr7Del();
 		mdrHeader = new MDRHeader(config.getHeaderLen());
 		mdrHeader.setSort(sort);
 		setHeader(mdrHeader);
@@ -221,6 +223,29 @@
 				continue;
 			
 			String name = lab.getText();
+			if (!mdr7Del.isEmpty()) {
+				String[] parts = name.split(" ");
+				int pos = parts.length;
+				if (parts != null) {
+					for (int i = parts.length-1; i >= 0; i--) {
+						if(!mdr7Del.contains(parts[i])) {
+							break;
+						}
+						pos = i;
+					}
+					if (pos == 0)
+						continue;
+					if (pos < parts.length) {
+						StringBuilder sb = new StringBuilder();
+						for (int i = 0; i +1 < pos; i++) {
+							sb.append(parts[i]);
+							sb.append(" ");
+						}
+						sb.append(parts[pos-1]);
+						name = sb.toString();
+					}
+				}
+			}
 			String cleanName = cleanUpName(name);
 			int strOff = createString(cleanName);
 
Index: src/uk/me/parabola/imgfmt/app/mdr/Mdr7.java
===================================================================
--- src/uk/me/parabola/imgfmt/app/mdr/Mdr7.java	(revision 3878)
+++ src/uk/me/parabola/imgfmt/app/mdr/Mdr7.java	(working copy)
@@ -63,8 +63,6 @@
 	public void addStreet(int mapId, String name, int lblOffset, int strOff, Mdr5Record mdrCity) {
 		if (name.isEmpty())
 			return;
-		if (exclNames.contains(name))
-			return;
 		
 		// Find a name prefix, which is either a shield or a word ending 0x1e. We are treating
 		// a shield as a prefix of length one.
Index: src/uk/me/parabola/imgfmt/app/mdr/MdrConfig.java
===================================================================
--- src/uk/me/parabola/imgfmt/app/mdr/MdrConfig.java	(revision 3878)
+++ src/uk/me/parabola/imgfmt/app/mdr/MdrConfig.java	(working copy)
@@ -16,6 +16,7 @@
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Set;
 
 import uk.me.parabola.imgfmt.app.srt.Sort;
@@ -38,6 +39,7 @@
 	private File outputDir;
 	private boolean splitName;
 	private Set<String> mdr7Excl = Collections.emptySet();
+	private Set<String> mdr7Del = Collections.emptySet();
 	
 	/**
 	 * True if we are creating the file, rather than reading it.
@@ -106,12 +108,33 @@
 		return Collections.unmodifiableSet(mdr7Excl);
 	}
 
-	public void setMdr7Excl(String s) {
-		if (s == null)
-			this.mdr7Excl = Collections.emptySet();
+	public void setMdr7Excl(String exclList) {
+		mdr7Excl = StringToSet(exclList);
+	}
+
+	public Set<String> getMdr7Del() {
+		return Collections.unmodifiableSet(mdr7Del);
+	}
+
+	public void setMdr7Del(String delList) {
+		mdr7Del = StringToSet(delList);
+	}
+	
+	private Set<String> StringToSet (String opt) {
+		Set<String> set;
+		if (opt == null)
+			set = Collections.emptySet();
 		else {
-			mdr7Excl = new HashSet<>(Arrays.asList(s.split(",")));
+			if (opt.startsWith("'") || opt.startsWith("\""))
+				opt = opt.substring(1);
+			if (opt.endsWith("'") || opt.endsWith("\""))
+				opt = opt.substring(0, opt.length() - 1);
+			List<String> list = Arrays.asList(opt.split(","));
+			set = new HashSet<>(list.size(), 0.25f);
+			for (String s : list) {
+				set.add(s.trim());
+			}
 		}
-		
+		return set;
 	}
 }
Index: src/uk/me/parabola/mkgmap/combiners/MdrBuilder.java
===================================================================
--- src/uk/me/parabola/mkgmap/combiners/MdrBuilder.java	(revision 3878)
+++ src/uk/me/parabola/mkgmap/combiners/MdrBuilder.java	(working copy)
@@ -113,6 +113,7 @@
 		config.setSort(sort);
 		config.setSplitName(args.get("split-name-index", false));
 		config.setMdr7Excl(args.get("mdr7-excl", null));
+		config.setMdr7Del(args.get("mdr7-del", null));
 
 		// Wrap the MDR channel with the MDRFile object
 		mdrFile = new MDRFile(mdrChan, config);
