diff --git a/src/vnet/ip/lookup.c b/src/vnet/ip/lookup.c
index 41e4607..4506ae1 100755
--- a/src/vnet/ip/lookup.c
+++ b/src/vnet/ip/lookup.c
@@ -408,15 +408,22 @@
 	  rpaths[vec_len (rpaths) - 1].frp_flags |=
 	    FIB_ROUTE_PATH_RESOLVE_VIA_ATTACHED;
 	}
-      else if (unformat (line_input, "out-label %U",
-			 unformat_mpls_unicast_label, &out_label))
+      else if (unformat (line_input, "out-labels"))
 	{
 	  if (vec_len (rpaths) == 0)
 	    {
 	      error = clib_error_return (0, "Paths then labels");
 	      goto done;
 	    }
-	  vec_add1 (rpaths[vec_len (rpaths) - 1].frp_label_stack, out_label);
+	  else
+	    {
+	      while (unformat (line_input, "%U",
+			       unformat_mpls_unicast_label, &out_label))
+		{
+		  vec_add1 (rpaths[vec_len (rpaths) - 1].frp_label_stack,
+			    out_label);
+		}
+	    }
 	}
       else if (unformat (line_input, "via-label %U",
 			 unformat_mpls_unicast_label, &rpath.frp_local_label))
diff --git a/src/vnet/mpls/mpls.c b/src/vnet/mpls/mpls.c
index 266ba42..5021ac2 100644
--- a/src/vnet/mpls/mpls.c
+++ b/src/vnet/mpls/mpls.c
@@ -66,8 +66,18 @@
       *label = MPLS_IETF_ROUTER_ALERT_LABEL;
   else if (unformat (input, MPLS_IETF_IMPLICIT_NULL_STRING))
       *label = MPLS_IETF_IMPLICIT_NULL_LABEL;
+  else if (unformat (input, MPLS_IETF_IPV4_EXPLICIT_NULL_BRIEF_STRING))
+      *label = MPLS_IETF_IPV4_EXPLICIT_NULL_LABEL;
+  else if (unformat (input, MPLS_IETF_IPV6_EXPLICIT_NULL_BRIEF_STRING))
+      *label = MPLS_IETF_IPV6_EXPLICIT_NULL_LABEL;
+  else if (unformat (input, MPLS_IETF_ROUTER_ALERT_BRIEF_STRING))
+      *label = MPLS_IETF_ROUTER_ALERT_LABEL;
+  else if (unformat (input, MPLS_IETF_IMPLICIT_NULL_BRIEF_STRING))
+      *label = MPLS_IETF_IMPLICIT_NULL_LABEL;
   else if (unformat (input, "%d", label))
       ;
+  else
+    return (0);
 
   return (1);
 }
@@ -388,16 +398,23 @@
           rpath.frp_flags = FIB_ROUTE_PATH_INTF_RX;
 	  vec_add1(rpaths, rpath);
       }
-      else if (unformat (line_input, "out-label %U",
-                         unformat_mpls_unicast_label,
-			 &out_label))
+      else if (unformat (line_input, "out-labels"))
       {
-	  if (vec_len(rpaths) == 0)
-	  {
-	      error = clib_error_return(0 , "Paths then labels");
+	  if (vec_len (rpaths) == 0)
+          {
+	      error = clib_error_return (0, "Paths then labels");
 	      goto done;
-	  }
-	  vec_add1(rpaths[vec_len(rpaths)-1].frp_label_stack, out_label);
+          }
+          else
+          {
+              while (unformat (line_input, "%U",
+                               unformat_mpls_unicast_label,
+                               &out_label))
+              {
+                  vec_add1 (rpaths[vec_len (rpaths) - 1].frp_label_stack,
+                            out_label);
+              }
+          }
       }
       else
       {
diff --git a/src/vnet/mpls/mpls_tunnel.c b/src/vnet/mpls/mpls_tunnel.c
index 6452a60..5211c92 100644
--- a/src/vnet/mpls/mpls_tunnel.c
+++ b/src/vnet/mpls/mpls_tunnel.c
@@ -800,11 +800,24 @@
             is_del = 0;
         else if (unformat (line_input, "add"))
             is_del = 0;
-        else if (unformat (line_input, "out-label %U",
-                           unformat_mpls_unicast_label, &out_label))
-        {
-            vec_add1(rpath.frp_label_stack, out_label);
-        }
+        else if (unformat (line_input, "out-labels"))
+	{
+            if (vec_len (rpaths) == 0)
+	    {
+                error = clib_error_return (0, "Paths then labels");
+                goto done;
+            }
+            else
+            {
+                while (unformat (line_input, "%U",
+                                 unformat_mpls_unicast_label,
+                                 &out_label))
+                {
+                    vec_add1 (rpaths[vec_len (rpaths) - 1].frp_label_stack,
+                              out_label);
+                }
+            }
+	}
         else if (unformat (line_input, "via %U %U",
                            unformat_ip4_address,
                            &rpath.frp_addr.ip4,
