diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/conversion/HEXValueConverter_toValue_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/conversion/HEXValueConverter_toValue_Test.java
index 8356c23..aeb48ee 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/conversion/HEXValueConverter_toValue_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/conversion/HEXValueConverter_toValue_Test.java
@@ -44,6 +44,7 @@
       { "0x1", 1L },
       { "0xA", 10L },
       { "0xFF", 255L },
+      { "-0x80000000", -2147483648L },
       { "0xffffffffffffffff", -1L } // overflow
     });
   }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext
index 7e2d303..c9aeb75 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/Protobuf.xtext
@@ -162,7 +162,7 @@
   ('[' fieldOptions+=FieldOption (',' fieldOptions+=FieldOption)* ']')? ';';
 
 terminal HEX returns ecore::ELong:
-  '0x' (NUMBER | 'a'..'f' | 'A'..'F')+;
+  ('-')? '0x' (NUMBER | 'a'..'f' | 'A'..'F')+;
 
 terminal NUMBER:
   '0'..'9';
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/HEXValueConverter.java b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/HEXValueConverter.java
index d87eb69..43a7618 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/HEXValueConverter.java
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/conversion/HEXValueConverter.java
@@ -23,6 +23,8 @@
  */
 public class HEXValueConverter extends AbstractLexerBasedConverter<Long> {
 
+  private static final String[] VALID_PREFIXES = { "0x", "-0x", "0X", "-0x" };
+  
   /**
    * Creates an {@code int} from the given input, if the given input represents an hexadecimal number.
    * @param string the given input.
@@ -33,8 +35,8 @@
    */
   @Override public Long toValue(String string, INode node) throws ValueConverterException {
     if (isEmpty(string)) throw new ValueConverterException("Couldn't convert empty string to long.", node, null);
-    if (!string.startsWith("0x") && !string.startsWith("0X")) throw parsingError(string, node);
-    String withoutZeroX = string.substring(2, string.length());
+    if (!startsWithValidPrefix(string)) throw parsingError(string, node);
+    String withoutZeroX = removeZeroX(string);
     try {
       BigInteger value = new BigInteger(withoutZeroX, 16);
       return value.longValue();
@@ -43,6 +45,21 @@
     }
   }
 
+  private boolean startsWithValidPrefix(String string) {
+    for (String prefix : VALID_PREFIXES) {
+      if (string.startsWith(prefix)) return true;
+    }
+    return false;
+  }
+  
+  private String removeZeroX(String string) {
+    if (string.startsWith("-")) {
+      String withoutSign = string.substring(3, string.length());
+      return "-" + withoutSign;
+    }
+    return string.substring(2, string.length());
+  }
+  
   private ValueConverterException parsingError(String string, INode node) {
     return parsingError(string, node, null);
   }
diff --git a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/Messages.properties b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/Messages.properties
index 688c504..c84ff3f 100644
--- a/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/Messages.properties
+++ b/com.google.eclipse.protobuf/src/com/google/eclipse/protobuf/validation/Messages.properties
@@ -9,5 +9,5 @@
 importNotFound = Import \"%s\" was not found.
 missingFieldNumber = Missing field number.
 multiplePackages = Multiple package definitions.
-nonProto2 = Protocol buffer with deprecated syntax.  This parser only recognizes \"proto2\".
+nonProto2 = Deprecated syntax.  This parser only recognizes \"proto2\".
 unrecognizedSyntaxIdentifier = Unrecognized syntax identifier \"%s\".  This parser only recognizes \"proto2\".
