diff --git a/com.google.eclipse.protobuf.feature/feature.xml b/com.google.eclipse.protobuf.feature/feature.xml
index 01cb397..60eb4ac 100644
--- a/com.google.eclipse.protobuf.feature/feature.xml
+++ b/com.google.eclipse.protobuf.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="com.google.eclipse.protobuf"
       label="%featureName"
-      version="1.3.3.qualifier"
+      version="1.3.5.qualifier"
       provider-name="%providerName">
 
    <description url="https://code.google.com/p/protobuf-dt/">
diff --git a/com.google.eclipse.protobuf.ui.integration.test/.gitignore b/com.google.eclipse.protobuf.ui.integration.test/.gitignore
new file mode 100644
index 0000000..5e56e04
--- /dev/null
+++ b/com.google.eclipse.protobuf.ui.integration.test/.gitignore
@@ -0,0 +1 @@
+/bin
diff --git a/com.google.eclipse.protobuf.ui.test/.gitignore b/com.google.eclipse.protobuf.ui.test/.gitignore
new file mode 100644
index 0000000..5e56e04
--- /dev/null
+++ b/com.google.eclipse.protobuf.ui.test/.gitignore
@@ -0,0 +1 @@
+/bin
diff --git a/com.google.eclipse.protobuf.ui/META-INF/MANIFEST.MF b/com.google.eclipse.protobuf.ui/META-INF/MANIFEST.MF
index b509576..3afef04 100644
--- a/com.google.eclipse.protobuf.ui/META-INF/MANIFEST.MF
+++ b/com.google.eclipse.protobuf.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: %Bundle-Name
 Bundle-Vendor: %Bundle-Vendor
-Bundle-Version: 1.3.3.qualifier
+Bundle-Version: 1.3.5.qualifier
 Bundle-SymbolicName: com.google.eclipse.protobuf.ui; singleton:=true
 Bundle-ActivationPolicy: lazy
 Require-Bundle: com.google.eclipse.protobuf;visibility:=reexport,
@@ -29,5 +29,6 @@
  com.google.eclipse.protobuf.ui.plugin,
  com.google.eclipse.protobuf.ui.preferences,
  com.google.eclipse.protobuf.ui.preferences.compiler,
- com.google.eclipse.protobuf.ui.util
+ com.google.eclipse.protobuf.ui.util,
+ com.google.eclipse.protobuf.ui.quickfix
 Bundle-Activator: com.google.eclipse.protobuf.ui.internal.ProtobufActivator
diff --git a/com.google.eclipse.protobuf/META-INF/MANIFEST.MF b/com.google.eclipse.protobuf/META-INF/MANIFEST.MF
index b714cf1..ff18266 100644
--- a/com.google.eclipse.protobuf/META-INF/MANIFEST.MF
+++ b/com.google.eclipse.protobuf/META-INF/MANIFEST.MF
@@ -3,7 +3,7 @@
 Eclipse-ExtensibleAPI: true
 Bundle-Name: %Bundle-Name
 Bundle-Vendor: %Bundle-Vendor
-Bundle-Version: 1.3.3.qualifier
+Bundle-Version: 1.3.5.qualifier
 Bundle-SymbolicName: com.google.eclipse.protobuf; singleton:=true
 Bundle-ActivationPolicy: lazy
 Require-Bundle: org.eclipse.xtext;bundle-version="2.3.0",
diff --git a/com.google.eclipse.protobuf/descriptor.proto b/com.google.eclipse.protobuf/descriptor.proto
index d959ce1..a2b9b4d 100644
--- a/com.google.eclipse.protobuf/descriptor.proto
+++ b/com.google.eclipse.protobuf/descriptor.proto
@@ -1,446 +1,266 @@
-// Protocol Buffers - Google's data interchange format
-// Copyright 2008 Google Inc.  All rights reserved.
-// http://code.google.com/p/protobuf/
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+// Copyright 2013 Google Inc.  All rights reserved.
 
-// Author: kenton@google.com (Kenton Varda)
-//  Based on original Protocol Buffers design by
-//  Sanjay Ghemawat, Jeff Dean, and others.
-//
-// The messages in this file describe the definitions found in .proto files.
-// A valid .proto file can be translated directly to a FileDescriptorProto
-// without any other information (e.g. without reading its imports).
 syntax = "proto2";
 
+package proto2;
 
-package google.protobuf;
 option java_package = "com.google.protobuf";
 option java_outer_classname = "DescriptorProtos";
-
-// descriptor.proto must be optimized for speed because reflection-based
-// algorithms don't work during bootstrapping.
 option optimize_for = SPEED;
 
-// The protocol compiler can output a FileDescriptorSet containing the .proto
-// files it parses.
 message FileDescriptorSet {
   repeated FileDescriptorProto file = 1;
 }
 
-// Describes a complete .proto file.
 message FileDescriptorProto {
-  optional string name = 1;       // file name, relative to root of source tree
-  optional string package = 2;    // e.g. "foo", "foo.bar", etc.
-
-  // Names of files imported by this file.
+  optional string name = 1;
+  optional string package = 2;
   repeated string dependency = 3;
-
-  // All top-level definitions in this file.
+  repeated int32 public_dependency = 10;
+  repeated int32 weak_dependency = 11;
   repeated DescriptorProto message_type = 4;
   repeated EnumDescriptorProto enum_type = 5;
   repeated ServiceDescriptorProto service = 6;
   repeated FieldDescriptorProto extension = 7;
-
   optional FileOptions options = 8;
-
-  // This field contains optional information about the original source code.
-  // You may safely remove this entire field whithout harming runtime
-  // functionality of the descriptors -- the information is needed only by
-  // development tools.
   optional SourceCodeInfo source_code_info = 9;
 }
 
-// Describes a message type.
 message DescriptorProto {
   optional string name = 1;
-
   repeated FieldDescriptorProto field = 2;
   repeated FieldDescriptorProto extension = 6;
-
   repeated DescriptorProto nested_type = 3;
   repeated EnumDescriptorProto enum_type = 4;
-
   message ExtensionRange {
     optional int32 start = 1;
     optional int32 end = 2;
   }
   repeated ExtensionRange extension_range = 5;
-
   optional MessageOptions options = 7;
 }
 
-// Describes a field within a message.
 message FieldDescriptorProto {
   enum Type {
-    // 0 is reserved for errors.
-    // Order is weird for historical reasons.
     TYPE_DOUBLE         = 1;
     TYPE_FLOAT          = 2;
-    TYPE_INT64          = 3;   // Not ZigZag encoded.  Negative numbers
-                               // take 10 bytes.  Use TYPE_SINT64 if negative
-                               // values are likely.
+    TYPE_INT64          = 3;
     TYPE_UINT64         = 4;
-    TYPE_INT32          = 5;   // Not ZigZag encoded.  Negative numbers
-                               // take 10 bytes.  Use TYPE_SINT32 if negative
-                               // values are likely.
+    TYPE_INT32          = 5;
     TYPE_FIXED64        = 6;
     TYPE_FIXED32        = 7;
     TYPE_BOOL           = 8;
     TYPE_STRING         = 9;
-    TYPE_GROUP          = 10;  // Tag-delimited aggregate.
-    TYPE_MESSAGE        = 11;  // Length-delimited aggregate.
-
-    // New in version 2.
+    TYPE_GROUP          = 10;
+    TYPE_MESSAGE        = 11;
     TYPE_BYTES          = 12;
     TYPE_UINT32         = 13;
     TYPE_ENUM           = 14;
     TYPE_SFIXED32       = 15;
     TYPE_SFIXED64       = 16;
-    TYPE_SINT32         = 17;  // Uses ZigZag encoding.
-    TYPE_SINT64         = 18;  // Uses ZigZag encoding.
+    TYPE_SINT32         = 17;
+    TYPE_SINT64         = 18;
   };
-
   enum Label {
-    // 0 is reserved for errors
     LABEL_OPTIONAL      = 1;
     LABEL_REQUIRED      = 2;
     LABEL_REPEATED      = 3;
-    // TODO(sanjay): Should we add LABEL_MAP?
   };
-
   optional string name = 1;
   optional int32 number = 3;
   optional Label label = 4;
-
-  // If type_name is set, this need not be set.  If both this and type_name
-  // are set, this must be either TYPE_ENUM or TYPE_MESSAGE.
   optional Type type = 5;
-
-  // For message and enum types, this is the name of the type.  If the name
-  // starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping
-  // rules are used to find the type (i.e. first the nested types within this
-  // message are searched, then within the parent, on up to the root
-  // namespace).
   optional string type_name = 6;
-
-  // For extensions, this is the name of the type being extended.  It is
-  // resolved in the same manner as type_name.
   optional string extendee = 2;
-
-  // For numeric types, contains the original text representation of the value.
-  // For booleans, "true" or "false".
-  // For strings, contains the default text contents (not escaped in any way).
-  // For bytes, contains the C escaped value.  All bytes >= 128 are escaped.
-  // TODO(kenton):  Base-64 encode?
   optional string default_value = 7;
-
   optional FieldOptions options = 8;
 }
 
-// Describes an enum type.
 message EnumDescriptorProto {
   optional string name = 1;
-
   repeated EnumValueDescriptorProto value = 2;
-
   optional EnumOptions options = 3;
 }
 
-// Describes a value within an enum.
 message EnumValueDescriptorProto {
   optional string name = 1;
   optional int32 number = 2;
-
   optional EnumValueOptions options = 3;
 }
 
-// Describes a service.
 message ServiceDescriptorProto {
   optional string name = 1;
   repeated MethodDescriptorProto method = 2;
-
+  repeated StreamDescriptorProto stream = 4;
   optional ServiceOptions options = 3;
 }
 
-// Describes a method of a service.
 message MethodDescriptorProto {
   optional string name = 1;
-
-  // Input and output type names.  These are resolved in the same way as
-  // FieldDescriptorProto.type_name, but must refer to a message type.
   optional string input_type = 2;
   optional string output_type = 3;
-
   optional MethodOptions options = 4;
 }
 
-// ===================================================================
-// Options
-
-// Each of the definitions above may have "options" attached.  These are
-// just annotations which may cause code to be generated slightly differently
-// or may contain hints for code that manipulates protocol messages.
-//
-// Clients may define custom options as extensions of the *Options messages.
-// These extensions may not yet be known at parsing time, so the parser cannot
-// store the values in them.  Instead it stores them in a field in the *Options
-// message called uninterpreted_option. This field must have the same name
-// across all *Options messages. We then use this field to populate the
-// extensions when we build a descriptor, at which point all protos have been
-// parsed and so all extensions are known.
-//
-// Extension numbers for custom options may be chosen as follows:
-// * For options which will only be used within a single application or
-//   organization, or for experimental options, use field numbers 50000
-//   through 99999.  It is up to you to ensure that you do not use the
-//   same number for multiple options.
-// * For options which will be published and used publicly by multiple
-//   independent entities, e-mail protobuf-global-extension-registry@google.com
-//   to reserve extension numbers. Simply provide your project name (e.g.
-//   Object-C plugin) and your porject website (if available) -- there's no need
-//   to explain how you intend to use them. Usually you only need one extension
-//   number. You can declare multiple options with only one extension number by
-//   putting them in a sub-message. See the Custom Options section of the docs
-//   for examples:
-//   http://code.google.com/apis/protocolbuffers/docs/proto.html#options
-//   If this turns out to be popular, a web service will be set up
-//   to automatically assign option numbers.
-
+message StreamDescriptorProto {
+  optional string name = 1;
+  optional string client_message_type = 2;
+  optional string server_message_type = 3;
+  optional StreamOptions options = 4;
+}
 
 message FileOptions {
-
-  // Sets the Java package where classes generated from this .proto will be
-  // placed.  By default, the proto package is used, but this is often
-  // inappropriate because proto packages do not normally start with backwards
-  // domain names.
+  optional int32 cc_api_version = 2 [default=2];
+  enum CompatibilityLevel {
+    NO_COMPATIBILITY = 0;
+    PROTO1_COMPATIBLE = 100;
+    DEPRECATED_PROTO1_COMPATIBLE = 50;
+  }
+  optional CompatibilityLevel cc_api_compatibility = 15 [default=NO_COMPATIBILITY];
+  optional bool cc_proto_array_compatible = 22 [default=true];
+  optional bool cc_utf8_verification = 24 [default=true];
+  optional bool cc_proto1_text_format = 25 [default=false];
   optional string java_package = 1;
-
-
-  // If set, all the classes from the .proto file are wrapped in a single
-  // outer class with the given name.  This applies to both Proto1
-  // (equivalent to the old "--one_java_file" option) and Proto2 (where
-  // a .proto always translates to a single class, but you may want to
-  // explicitly choose the class name).
+  optional int32 py_api_version = 4 [default=2];
+  optional int32 java_api_version = 5 [default=2];
+  optional bool java_use_javaproto2 = 6 [default=true];
+  optional bool java_java5_enums = 7 [default=true];
+  optional bool java_generate_rpc_baseimpl = 13 [default=false];
+  optional bool java_use_javastrings = 21 [default=false];
+  optional string java_alt_api_package = 19;
   optional string java_outer_classname = 8;
-
-  // If set true, then the Java code generator will generate a separate .java
-  // file for each top-level message, enum, and service defined in the .proto
-  // file.  Thus, these types will *not* be nested inside the outer class
-  // named by java_outer_classname.  However, the outer class will still be
-  // generated to contain the file's getDescriptor() method as well as any
-  // top-level extensions defined in the file.
   optional bool java_multiple_files = 10 [default=false];
-
-  // If set true, then the Java code generator will generate equals() and
-  // hashCode() methods for all messages defined in the .proto file. This is
-  // purely a speed optimization, as the AbstractMessage base class includes
-  // reflection-based implementations of these methods.
   optional bool java_generate_equals_and_hash = 20 [default=false];
-
-  // Generated classes can be optimized for speed or code size.
   enum OptimizeMode {
-    SPEED = 1;        // Generate complete code for parsing, serialization,
-                      // etc.
-    CODE_SIZE = 2;    // Use ReflectionOps to implement these methods.
-    LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime.
+    SPEED = 1;
+    CODE_SIZE = 2;
+    LITE_RUNTIME = 3;
   }
   optional OptimizeMode optimize_for = 9 [default=SPEED];
-
-
-
-
-  // Should generic services be generated in each language?  "Generic" services
-  // are not specific to any particular RPC system.  They are generated by the
-  // main code generators in each language (without additional plugins).
-  // Generic services were the only kind of service generation supported by
-  // early versions of proto2.
-  //
-  // Generic services are now considered deprecated in favor of using plugins
-  // that generate code specific to your particular RPC system.  Therefore,
-  // these default to false.  Old code which depends on generic services should
-  // explicitly set them to true.
-  optional bool cc_generic_services = 16 [default=false];
+  optional string go_package = 11;
+  optional string javascript_package = 12;
+  optional int32 szl_api_version = 14 [default=1];
   optional bool java_generic_services = 17 [default=false];
   optional bool py_generic_services = 18 [default=false];
-
-  // The parser stores options it doesn't recognize here. See above.
+  optional bool deprecated = 23 [default=false];
   repeated UninterpretedOption uninterpreted_option = 999;
-
-  // Clients can define custom options in extensions of this message. See above.
   extensions 1000 to max;
 }
 
 message MessageOptions {
-  // Set true to use the old proto1 MessageSet wire format for extensions.
-  // This is provided for backwards-compatibility with the MessageSet wire
-  // format.  You should not use this for any other reason:  It's less
-  // efficient, has fewer features, and is more complicated.
-  //
-  // The message must be defined exactly as follows:
-  //   message Foo {
-  //     option message_set_wire_format = true;
-  //     extensions 4 to max;
-  //   }
-  // Note that the message cannot have any defined fields; MessageSets only
-  // have extensions.
-  //
-  // All extensions of your type must be singular messages; e.g. they cannot
-  // be int32s, enums, or repeated messages.
-  //
-  // Because this is an option, the above two restrictions are not enforced by
-  // the protocol compiler.
   optional bool message_set_wire_format = 1 [default=false];
-
-  // Disables the generation of the standard "descriptor()" accessor, which can
-  // conflict with a field of the same name.  This is meant to make migration
-  // from proto1 easier; new code should avoid fields named "descriptor".
   optional bool no_standard_descriptor_accessor = 2 [default=false];
-
-  // The parser stores options it doesn't recognize here. See above.
+  optional bool deprecated = 3 [default=false];
   repeated UninterpretedOption uninterpreted_option = 999;
-
-  // Clients can define custom options in extensions of this message. See above.
   extensions 1000 to max;
 }
 
 message FieldOptions {
-  // The ctype option instructs the C++ code generator to use a different
-  // representation of the field than it normally would.  See the specific
-  // options below.  This option is not yet implemented in the open source
-  // release -- sorry, we'll try to include it in a future version!
   optional CType ctype = 1 [default = STRING];
   enum CType {
-    // Default mode.
     STRING = 0;
-
     CORD = 1;
-
     STRING_PIECE = 2;
   }
-  // The packed option can be enabled for repeated primitive fields to enable
-  // a more efficient representation on the wire. Rather than repeatedly
-  // writing the tag and type for each element, the entire array is encoded as
-  // a single length-delimited blob.
   optional bool packed = 2;
-
-
-  // Is this field deprecated?
-  // Depending on the target platform, this can emit Deprecated annotations
-  // for accessors, or it will be completely ignored; in the very least, this
-  // is a formalization for deprecating fields.
+  optional JType jtype = 4 [default = NORMAL];
+  enum JType {
+    NORMAL = 0;
+    BYTES = 1;
+  }
+  optional JSType jstype = 6 [default = JS_NORMAL];
+  enum JSType {
+    JS_NORMAL = 0;
+    JS_STRING = 1;
+    JS_NUMBER = 2;
+  }
+  optional bool lazy = 5 [default=false];
   optional bool deprecated = 3 [default=false];
-
-  // EXPERIMENTAL.  DO NOT USE.
-  // For "map" fields, the name of the field in the enclosed type that
-  // is the key for this map.  For example, suppose we have:
-  //   message Item {
-  //     required string name = 1;
-  //     required string value = 2;
-  //   }
-  //   message Config {
-  //     repeated Item items = 1 [experimental_map_key="name"];
-  //   }
-  // In this situation, the map key for Item will be set to "name".
-  // TODO: Fully-implement this, then remove the "experimental_" prefix.
   optional string experimental_map_key = 9;
-
-  // The parser stores options it doesn't recognize here. See above.
+  optional bool weak = 10 [default=false];
+  message UpgradedOption {
+    optional string name = 1;
+    optional string value = 2;
+  };
+  repeated UpgradedOption upgraded_option = 11;
   repeated UninterpretedOption uninterpreted_option = 999;
-
-  // Clients can define custom options in extensions of this message. See above.
   extensions 1000 to max;
 }
 
 message EnumOptions {
-
-  // The parser stores options it doesn't recognize here. See above.
+  optional string proto1_name = 1;
+  optional bool allow_alias = 2;
+  optional bool deprecated = 3 [default=false];
   repeated UninterpretedOption uninterpreted_option = 999;
-
-  // Clients can define custom options in extensions of this message. See above.
   extensions 1000 to max;
 }
 
 message EnumValueOptions {
-  // The parser stores options it doesn't recognize here. See above.
+  optional bool deprecated = 1 [default=false];
   repeated UninterpretedOption uninterpreted_option = 999;
-
-  // Clients can define custom options in extensions of this message. See above.
   extensions 1000 to max;
 }
 
 message ServiceOptions {
-
-  // Note:  Field numbers 1 through 32 are reserved for Google's internal RPC
-  //   framework.  We apologize for hoarding these numbers to ourselves, but
-  //   we were already using them long before we decided to release Protocol
-  //   Buffers.
-
-  // The parser stores options it doesn't recognize here. See above.
+  optional bool multicast_stub = 20 [default=false];
+  optional double failure_detection_delay = 16 [default=-1.0];
+  optional bool deprecated = 33 [default=false];
   repeated UninterpretedOption uninterpreted_option = 999;
-
-  // Clients can define custom options in extensions of this message. See above.
   extensions 1000 to max;
 }
 
 message MethodOptions {
-
-  // Note:  Field numbers 1 through 32 are reserved for Google's internal RPC
-  //   framework.  We apologize for hoarding these numbers to ourselves, but
-  //   we were already using them long before we decided to release Protocol
-  //   Buffers.
-
-  // The parser stores options it doesn't recognize here. See above.
+  enum Protocol {
+    TCP = 0;
+    UDP = 1;
+  }
+  enum SecurityLevel {
+    NONE = 0;
+    INTEGRITY = 1;
+    PRIVACY_AND_INTEGRITY = 2;
+    STRONG_PRIVACY_AND_INTEGRITY = 3;
+  }
+  enum Format {
+    UNCOMPRESSED = 0;
+    ZIPPY_COMPRESSED = 1;
+  }
+  optional double deadline = 8  [default=-1.0];
+  optional bool duplicate_suppression = 9  [default=false];
+  optional bool fail_fast = 10 [default=false];
+  optional sint32 client_logging = 11 [default=256];
+  optional sint32 server_logging = 12 [default=256];
+  optional SecurityLevel security_level = 13 [default=NONE];
+  optional Format response_format = 15 [default=UNCOMPRESSED];
+  optional Format request_format = 17 [default=UNCOMPRESSED];
+  optional string stream_type = 18;
+  optional bool deprecated = 33 [default=false];
   repeated UninterpretedOption uninterpreted_option = 999;
-
-  // Clients can define custom options in extensions of this message. See above.
   extensions 1000 to max;
 }
 
-// A message representing a option the parser does not recognize. This only
-// appears in options protos created by the compiler::Parser class.
-// DescriptorPool resolves these when building Descriptor objects. Therefore,
-// options protos in descriptor objects (e.g. returned by Descriptor::options(),
-// or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
-// in them.
+message StreamOptions {
+  enum TokenUnit {
+    MESSAGE = 0;
+    BYTE = 1;
+  }
+  optional int64 client_initial_tokens = 1 [default=-1];
+  optional int64 server_initial_tokens = 2 [default=-1];
+  optional TokenUnit token_unit = 3 [default=MESSAGE];
+  optional MethodOptions.SecurityLevel security_level = 4 [default=NONE];
+  optional string security_label = 5;
+  optional int32 client_logging = 6 [default=256];
+  optional int32 server_logging = 7 [default=256];
+  optional bool deprecated = 33 [default=false];
+  repeated UninterpretedOption uninterpreted_option = 999;
+  extensions 1000 to max;
+}
+
 message UninterpretedOption {
-  // The name of the uninterpreted option.  Each string represents a segment in
-  // a dot-separated name.  is_extension is true iff a segment represents an
-  // extension (denoted with parentheses in options specs in .proto files).
-  // E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents
-  // "foo.(bar.baz).qux".
   message NamePart {
     required string name_part = 1;
     required bool is_extension = 2;
   }
   repeated NamePart name = 2;
-
-  // The value of the uninterpreted option, in whatever type the tokenizer
-  // identified it as during parsing. Exactly one of these should be set.
   optional string identifier_value = 3;
   optional uint64 positive_int_value = 4;
   optional int64 negative_int_value = 5;
@@ -449,90 +269,12 @@
   optional string aggregate_value = 8;
 }
 
-// ===================================================================
-// Optional source code info
-
-// Encapsulates information about the original source file from which a
-// FileDescriptorProto was generated.
 message SourceCodeInfo {
-  // A Location identifies a piece of source code in a .proto file which
-  // corresponds to a particular definition.  This information is intended
-  // to be useful to IDEs, code indexers, documentation generators, and similar
-  // tools.
-  //
-  // For example, say we have a file like:
-  //   message Foo {
-  //     optional string foo = 1;
-  //   }
-  // Let's look at just the field definition:
-  //   optional string foo = 1;
-  //   ^       ^^     ^^  ^  ^^^
-  //   a       bc     de  f  ghi
-  // We have the following locations:
-  //   span   path               represents
-  //   [a,i)  [ 4, 0, 2, 0 ]     The whole field definition.
-  //   [a,b)  [ 4, 0, 2, 0, 4 ]  The label (optional).
-  //   [c,d)  [ 4, 0, 2, 0, 5 ]  The type (string).
-  //   [e,f)  [ 4, 0, 2, 0, 1 ]  The name (foo).
-  //   [g,h)  [ 4, 0, 2, 0, 3 ]  The number (1).
-  //
-  // Notes:
-  // - A location may refer to a repeated field itself (i.e. not to any
-  //   particular index within it).  This is used whenever a set of elements are
-  //   logically enclosed in a single code segment.  For example, an entire
-  //   extend block (possibly containing multiple extension definitions) will
-  //   have an outer location whose path refers to the "extensions" repeated
-  //   field without an index.
-  // - Multiple locations may have the same path.  This happens when a single
-  //   logical declaration is spread out across multiple places.  The most
-  //   obvious example is the "extend" block again -- there may be multiple
-  //   extend blocks in the same scope, each of which will have the same path.
-  // - A location's span is not always a subset of its parent's span.  For
-  //   example, the "extendee" of an extension declaration appears at the
-  //   beginning of the "extend" block and is shared by all extensions within
-  //   the block.
-  // - Just because a location's span is a subset of some other location's span
-  //   does not mean that it is a descendent.  For example, a "group" defines
-  //   both a type and a field in a single declaration.  Thus, the locations
-  //   corresponding to the type and field and their components will overlap.
-  // - Code which tries to interpret locations should probably be designed to
-  //   ignore those that it doesn't understand, as more types of locations could
-  //   be recorded in the future.
   repeated Location location = 1;
   message Location {
-    // Identifies which part of the FileDescriptorProto was defined at this
-    // location.
-    //
-    // Each element is a field number or an index.  They form a path from
-    // the root FileDescriptorProto to the place where the definition.  For
-    // example, this path:
-    //   [ 4, 3, 2, 7, 1 ]
-    // refers to:
-    //   file.message_type(3)  // 4, 3
-    //       .field(7)         // 2, 7
-    //       .name()           // 1
-    // This is because FileDescriptorProto.message_type has field number 4:
-    //   repeated DescriptorProto message_type = 4;
-    // and DescriptorProto.field has field number 2:
-    //   repeated FieldDescriptorProto field = 2;
-    // and FieldDescriptorProto.name has field number 1:
-    //   optional string name = 1;
-    //
-    // Thus, the above path gives the location of a field name.  If we removed
-    // the last element:
-    //   [ 4, 3, 2, 7 ]
-    // this path refers to the whole field declaration (from the beginning
-    // of the label to the terminating semicolon).
     repeated int32 path = 1 [packed=true];
-
-    // Always has exactly three or four elements: start line, start column,
-    // end line (optional, otherwise assumed same as start line), end column.
-    // These are packed into a single field for efficiency.  Note that line
-    // and column numbers are zero-based -- typically you will want to add
-    // 1 to each before displaying to a user.
     repeated int32 span = 2 [packed=true];
-
-    // TODO(kenton):  Record comments appearing before and after the
-    // declaration.
+    optional string leading_comments = 3;
+    optional string trailing_comments = 4;
   }
 }
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 a2e91e7..a4eff95 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
@@ -207,7 +207,7 @@
   NormalFieldName | ExtensionFieldName;
 
 NormalFieldName:
-  target=[MessageField];
+  target=[MessageField|Name];
 
 ExtensionFieldName:
   '[' target=[MessageField|QualifiedName] ']';
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 e553950..adb6208 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
@@ -22,7 +22,7 @@
  * @author alruiz@google.com (Alex Ruiz)
  */
 public class HEXValueConverter extends AbstractLexerBasedConverter<Long> {
-  private static final String[] VALID_PREFIXES = { "0x", "-0x", "0X", "-0x" };
+  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.
diff --git a/update-site/.gitignore b/update-site/.gitignore
new file mode 100644
index 0000000..d076332
--- /dev/null
+++ b/update-site/.gitignore
@@ -0,0 +1,4 @@
+/content.jar
+/features
+/plugins
+/artifacts.jar
diff --git a/update-site/artifacts.jar b/update-site/artifacts.jar
index f960e3d..738f943 100644
--- a/update-site/artifacts.jar
+++ b/update-site/artifacts.jar
Binary files differ
diff --git a/update-site/content.jar b/update-site/content.jar
index 866e780..545a42f 100644
--- a/update-site/content.jar
+++ b/update-site/content.jar
Binary files differ
diff --git a/update-site/features/com.google.eclipse.protobuf_1.3.3.201210291557.jar b/update-site/features/com.google.eclipse.protobuf_1.3.3.201210291557.jar
deleted file mode 100644
index 31a417a..0000000
--- a/update-site/features/com.google.eclipse.protobuf_1.3.3.201210291557.jar
+++ /dev/null
Binary files differ
diff --git a/update-site/plugins/com.google.eclipse.protobuf.ui_1.3.3.201210291557.jar b/update-site/plugins/com.google.eclipse.protobuf.ui_1.3.3.201210291557.jar
deleted file mode 100644
index 3920965..0000000
--- a/update-site/plugins/com.google.eclipse.protobuf.ui_1.3.3.201210291557.jar
+++ /dev/null
Binary files differ
diff --git a/update-site/plugins/com.google.eclipse.protobuf_1.3.3.201210291557.jar b/update-site/plugins/com.google.eclipse.protobuf_1.3.3.201210291557.jar
deleted file mode 100644
index 6e94e84..0000000
--- a/update-site/plugins/com.google.eclipse.protobuf_1.3.3.201210291557.jar
+++ /dev/null
Binary files differ
diff --git a/update-site/site.xml b/update-site/site.xml
index b1d0890..76fead0 100644
--- a/update-site/site.xml
+++ b/update-site/site.xml
@@ -3,7 +3,7 @@
    <description name="protobuf-dt" url="http://protobuf-dt.googlecode.com/git/update-site">
       Update site for protobuf-dt, an Eclipse-based Development Environment for Protocol Buffers.
    </description>
-   <feature url="features/com.google.eclipse.protobuf_1.3.3.201210291557.jar" id="com.google.eclipse.protobuf" version="1.3.3.201210291557">
+   <feature url="features/com.google.eclipse.protobuf_1.3.5.201305301034.jar" id="com.google.eclipse.protobuf" version="1.3.5.201305301034">
       <category name="google"/>
    </feature>
    <category-def name="google" label="Google Inc."/>
