diff --git a/src/name.cpp b/src/name.cpp
index 0a0b0e3..b71c23c 100644
--- a/src/name.cpp
+++ b/src/name.cpp
@@ -259,10 +259,10 @@
 }
 
 void
-Name::toEscapedString(const vector<uint8_t>& value, std::ostream& result)
+Name::toEscapedString(const uint8_t *value, size_t valueSize, std::ostream& result)
 {
   bool gotNonDot = false;
-  for (unsigned i = 0; i < value.size(); ++i) {
+  for (unsigned i = 0; i < valueSize; ++i) {
     if (value[i] != 0x2e) {
       gotNonDot = true;
       break;
@@ -271,14 +271,14 @@
   if (!gotNonDot) {
     // Special case for component of zero or more periods.  Add 3 periods.
     result << "...";
-    for (size_t i = 0; i < value.size(); ++i)
+    for (size_t i = 0; i < valueSize; ++i)
       result << '.';
   }
   else {
     // In case we need to escape, set to upper case hex and save the previous flags.
     ios::fmtflags saveFlags = result.flags(ios::hex | ios::uppercase);
     
-    for (size_t i = 0; i < value.size(); ++i) {
+    for (size_t i = 0; i < valueSize; ++i) {
       uint8_t x = value[i];
       // Check for 0-9, A-Z, a-z, (+), (-), (.), (_)
       if ((x >= 0x30 && x <= 0x39) || (x >= 0x41 && x <= 0x5a) ||
@@ -298,14 +298,6 @@
   }  
 }
 
-string
-Name::toEscapedString(const vector<uint8_t>& value)
-{
-  ostringstream result;
-  toEscapedString(value, result);
-  return result.str();
-}
-
 bool 
 Name::breadthFirstLess(const Name& name1, const Name& name2)
 {
@@ -363,6 +355,8 @@
 void
 Name::wireDecode(const Block &wire)
 {
+  clear();
+  
   wire_ = wire;
   wire_.parse();
 
