Merge branch 'issue/1086-name-getPrefix-negative-argument'. Refs #1086.
http://redmine.named-data.net/issues/1086
diff --git a/CHANGELOG b/CHANGELOG
index 66f3e5f..e09485f 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,4 @@
-Interim changes since NDN-CPP v0.2(2013-12-16)
+Interim changes since NDN-CPP v0.2(2013-12-17)
 
 Bug fixes
 * http://redmine.named-data.net/issues/1056 Fix DTAG NDNProtocolDataUnit to encode as "NDN\202\000".
@@ -8,7 +8,8 @@
 * Fix bug in getForwardingEntryFlags: Need to check all flags, not the first flag using "else if".
 
 Changes
-* http://redmine.named-data.net/issues/1085: In Name::Component, added comparison operators.
+* http://redmine.named-data.net/issues/1085 In Name::Component, added comparison operators.
+* http://redmine.named-data.net/issues/1086 In Name::getPrefix, support a negative argument, e.g. getPrefix(-1).
 * MetaInfo: Added setFinalBlockID for Name::Component, remove unused setFinalBlockID which take uint8_t*, etc.
 * Fix clang compiler warnings: Include headers, parentheses and cast explicitly.
 * Moved class ExcludeEntry to inner class Exclude::Entry.
diff --git a/include/ndn-cpp/name.hpp b/include/ndn-cpp/name.hpp
index 9a1b39e..50f50b2 100644
--- a/include/ndn-cpp/name.hpp
+++ b/include/ndn-cpp/name.hpp
@@ -438,13 +438,17 @@
   
   /**
    * Return a new Name with the first nComponents components of this Name.
-   * @param nComponents The number of prefix components.
+   * @param nComponents The number of prefix components.  If nComponents is -N then return the prefix up
+   * to name.size() - N. For example getPrefix(-1) returns the name without the final component.
    * @return A new Name.
    */
   Name
-  getPrefix(size_t nComponents) const
+  getPrefix(int nComponents) const
   {
-    return getSubName(0, nComponents);
+    if (nComponents < 0)
+      return getSubName(0, components_.size() + nComponents);
+    else
+      return getSubName(0, nComponents);
   }
   
   /**