diff --git a/example/example11.cpp b/example/example11.cpp
index 636a36c..4b3c6d0 100644
--- a/example/example11.cpp
+++ b/example/example11.cpp
@@ -58,4 +58,5 @@
 
     using namespace py::literals;
     m.def("kw_func_udl", &kw_func, "x"_a, "y"_a=300);
+    m.def("kw_func_udl_z", &kw_func, "x"_a, "y"_a=0);
 }
diff --git a/example/example11.py b/example/example11.py
index 33ed80b..09ba13e 100755
--- a/example/example11.py
+++ b/example/example11.py
@@ -6,13 +6,14 @@
 sys.path.append('.')
 
 from example import kw_func, kw_func2, kw_func3, kw_func4, call_kw_func
-from example import args_function, args_kwargs_function, kw_func_udl
+from example import args_function, args_kwargs_function, kw_func_udl, kw_func_udl_z
 
 print(pydoc.render_doc(kw_func, "Help on %s"))
 print(pydoc.render_doc(kw_func2, "Help on %s"))
 print(pydoc.render_doc(kw_func3, "Help on %s"))
 print(pydoc.render_doc(kw_func4, "Help on %s"))
 print(pydoc.render_doc(kw_func_udl, "Help on %s"))
+print(pydoc.render_doc(kw_func_udl_z, "Help on %s"))
 
 kw_func(5, 10)
 kw_func(5, y=10)
@@ -42,3 +43,4 @@
 args_kwargs_function('arg1_value', 'arg2_value', arg3='arg3_value', arg4=4)
 
 kw_func_udl(x=5, y=10)
+kw_func_udl_z(x=5)
diff --git a/example/example11.ref b/example/example11.ref
index e965187..a693b6c 100644
--- a/example/example11.ref
+++ b/example/example11.ref
@@ -23,6 +23,11 @@
 kkww__ffuunncc__uuddll(...)
     kw_func_udl(x : int, y : int = 300L) -> NoneType
 
+Help on built-in function kw_func_udl_z in module example
+
+kkww__ffuunncc__uuddll__zz(...)
+    kw_func_udl_z(x : int, y : int = 0L) -> NoneType
+
 kw_func(x=5, y=10)
 kw_func(x=5, y=10)
 kw_func(x=5, y=10)
@@ -47,3 +52,4 @@
 got keyword argument: arg4 -> 4
 
 kw_func(x=5, y=10)
+kw_func(x=5, y=0)
diff --git a/include/pybind11/attr.h b/include/pybind11/attr.h
index 10d848a..1e063a5 100644
--- a/include/pybind11/attr.h
+++ b/include/pybind11/attr.h
@@ -18,14 +18,14 @@
 
 /// Annotation for keyword arguments
 struct arg {
-    constexpr arg(const char *name) : name(name) { }
+    constexpr explicit arg(const char *name) : name(name) { }
 
     template <typename T>
     constexpr arg_t<T> operator=(const T &value) const { return {name, value}; }
     template <typename T, size_t N>
     constexpr arg_t<const T *> operator=(T const (&value)[N]) const {
         return operator=((const T *) value);
-    };
+    }
 
     const char *name;
 };
@@ -40,7 +40,7 @@
 
 inline namespace literals {
 /// String literal version of arg
-constexpr arg operator"" _a(const char *name, size_t) { return {name}; }
+constexpr arg operator"" _a(const char *name, size_t) { return arg(name); }
 }
 
 /// Annotation for methods
