diff --git a/user/src/com/google/gwt/uibinder/rebind/AttributeParsers.java b/user/src/com/google/gwt/uibinder/rebind/AttributeParsers.java
index 3b5963d..666cd95 100644
--- a/user/src/com/google/gwt/uibinder/rebind/AttributeParsers.java
+++ b/user/src/com/google/gwt/uibinder/rebind/AttributeParsers.java
@@ -17,7 +17,6 @@
 
 import com.google.gwt.core.ext.typeinfo.JEnumType;
 import com.google.gwt.core.ext.typeinfo.JType;
-import com.google.gwt.core.ext.typeinfo.TypeOracle;
 import com.google.gwt.uibinder.parsers.AttributeParser;
 import com.google.gwt.uibinder.parsers.EnumAttributeParser;
 import com.google.gwt.uibinder.parsers.StrictAttributeParser;
@@ -52,10 +51,8 @@
    * keyed by method parameter signatures.
    */
   private final Map<String, String> parsers = new HashMap<String, String>();
-  private final TypeOracle oracle;
 
-  public AttributeParsers(TypeOracle oracle) {
-    this.oracle = oracle;
+  public AttributeParsers() {
     
     addAttributeParser(BOOLEAN,
         "com.google.gwt.uibinder.parsers.BooleanAttributeParser");
@@ -75,6 +72,10 @@
     addAttributeParser("com.google.gwt.user.client.ui.HasHorizontalAlignment."
         + "HorizontalAlignmentConstant",
         "com.google.gwt.uibinder.parsers.HorizontalAlignmentConstantParser");
+
+    addAttributeParser("com.google.gwt.user.client.ui.HasVerticalAlignment."
+        + "VerticalAlignmentConstant",
+        "com.google.gwt.uibinder.parsers.VerticalAlignmentConstantParser");
   }
 
   public AttributeParser get(JType... types) {
diff --git a/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java b/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java
index 4a767df..e094e7e 100644
--- a/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java
+++ b/user/src/com/google/gwt/uibinder/rebind/UiBinderWriter.java
@@ -271,7 +271,7 @@
     handlerEvaluator = new HandlerEvaluator(ownerClass, logger, oracle);
     fieldManager = new FieldManager(logger);
 
-    attributeParsers = new AttributeParsers(oracle);
+    attributeParsers = new AttributeParsers();
     bundleParsers = new BundleAttributeParsers(oracle, gwtPrefix, logger,
         getOwnerClass(), templatePath, uiOwnerType);
   }
diff --git a/user/test/com/google/gwt/uibinder/rebind/XMLElementTest.java b/user/test/com/google/gwt/uibinder/rebind/XMLElementTest.java
index 8f224b4..28f20c9 100644
--- a/user/test/com/google/gwt/uibinder/rebind/XMLElementTest.java
+++ b/user/test/com/google/gwt/uibinder/rebind/XMLElementTest.java
@@ -226,7 +226,7 @@
     item = (Element) doc.getDocumentElement().getElementsByTagName("elm").item(
         0);
 
-    elemProvider = new XMLElementProviderImpl(new AttributeParsers(null), null,
+    elemProvider = new XMLElementProviderImpl(new AttributeParsers(), null,
         new DummyMortalLogger());
     elm = elemProvider.get(item);
   }
diff --git a/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
index 7bb97de..f3f2f48 100644
--- a/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
+++ b/user/test/com/google/gwt/uibinder/test/client/WidgetBasedUi.ui.xml
@@ -133,7 +133,7 @@
 <ui:image field='right'/>
 <ui:image field='down'/>
 
-<gwt:DockPanel ui:field="root" width="100%">
+<gwt:DockPanel ui:field="root" width="100%" verticalAlignment="ALIGN_TOP">
   <gwt:Dock direction='NORTH'>
     <gwt:HTML>
       <div style='border: 4px solid gray; padding: 4px; margin: 4px;'>
