diff --git a/src/vnet/map/map.c b/src/vnet/map/map.c
index b2eefee..702b5f8 100644
--- a/src/vnet/map/map.c
+++ b/src/vnet/map/map.c
@@ -106,7 +106,8 @@
   /* How many, and which bits to grab from the IPv4 DA */
   if (ip4_prefix_len + ea_bits_len < 32)
     {
-      flags |= MAP_DOMAIN_PREFIX;
+      if (!(flags & MAP_DOMAIN_TRANSLATION))
+	flags |= MAP_DOMAIN_PREFIX;
       suffix_shift = 32 - ip4_prefix_len - ea_bits_len;
       suffix_len = ea_bits_len;
     }
@@ -126,6 +127,12 @@
       return -1;
     }
 
+  if (mm->is_ce && !(flags & MAP_DOMAIN_TRANSLATION))
+    {
+      clib_warning ("MAP-E CE is not supported yet");
+      return -1;
+    }
+
   /* Get domain index */
   pool_get_aligned (mm->domains, d, CLIB_CACHE_LINE_BYTES);
   memset (d, 0, sizeof (*d));
@@ -157,11 +164,23 @@
     map_dpo_create (DPO_PROTO_IP4, *map_domain_index, &dpo_v4);
 
   /* Create ip4 route */
+  u8 ip4_pfx_len;
+  ip4_address_t ip4_pfx;
+  if (mm->is_ce)
+    {
+      ip4_pfx_len = 0;
+      ip4_pfx.as_u32 = 0;
+    }
+  else
+    {
+      ip4_pfx_len = d->ip4_prefix_len;
+      ip4_pfx = d->ip4_prefix;
+    }
   fib_prefix_t pfx = {
     .fp_proto = FIB_PROTOCOL_IP4,
-    .fp_len = d->ip4_prefix_len,
+    .fp_len = ip4_pfx_len,
     .fp_addr = {
-		.ip4 = d->ip4_prefix,
+		.ip4 = ip4_pfx,
 		}
     ,
   };
@@ -187,10 +206,22 @@
    * already exists and is MAP sourced, it is now MAP source n+1 times
    * and will need to be removed n+1 times.
    */
+  u8 ip6_pfx_len;
+  ip6_address_t ip6_pfx;
+  if (mm->is_ce)
+    {
+      ip6_pfx_len = d->ip6_prefix_len;
+      ip6_pfx = d->ip6_prefix;
+    }
+  else
+    {
+      ip6_pfx_len = d->ip6_src_len;
+      ip6_pfx = d->ip6_src;
+    }
   fib_prefix_t pfx6 = {
     .fp_proto = FIB_PROTOCOL_IP6,
-    .fp_len = d->ip6_src_len,
-    .fp_addr.ip6 = d->ip6_src,
+    .fp_len = ip6_pfx_len,
+    .fp_addr.ip6 = ip6_pfx,
   };
 
   fib_table_entry_special_dpo_add (0, &pfx6,
@@ -2146,7 +2177,7 @@
   .path = "map add domain",
   .short_help = "map add domain ip4-pfx <ip4-pfx> ip6-pfx <ip6-pfx> "
       "ip6-src <ip6-pfx> ea-bits-len <n> psid-offset <n> psid-len <n> "
-      "[map-t] [mtu <mtu>]",
+      "[map-t] [map-ce] [mtu <mtu>]",
   .function = map_add_domain_command_fn,
 };
 
@@ -2216,6 +2247,28 @@
 };
 /* *INDENT-ON* */
 
+static clib_error_t *
+map_config (vlib_main_t * vm, unformat_input_t * input)
+{
+  map_main_t *mm = &map_main;
+  u8 is_ce = false;
+
+  while (unformat_check_input (input) != UNFORMAT_END_OF_INPUT)
+    {
+      if (unformat (input, "customer edge"))
+	is_ce = true;
+      else
+	return clib_error_return (0, "unknown input '%U'",
+				  format_unformat_error, input);
+    }
+
+  mm->is_ce = is_ce;
+
+  return 0;
+}
+
+VLIB_CONFIG_FUNCTION (map_config, "map");
+
 /*
  * map_init
  */
@@ -2246,6 +2299,8 @@
   /* ICMP6 Type 1, Code 5 for security check failure */
   mm->icmp6_enabled = false;
 
+  mm->is_ce = false;
+
   /* Inner or outer fragmentation */
   mm->frag_inner = false;
   mm->frag_ignore_df = false;
