diff --git a/src/main/java/org/springframework/samples/petclinic/Pet.java b/src/main/java/org/springframework/samples/petclinic/Pet.java
index 6235ba9899686887d7b6c2b19f48d7cc72537604..8974baeda9c9944c718d206571fe0a009ed6cc97 100644
--- a/src/main/java/org/springframework/samples/petclinic/Pet.java
+++ b/src/main/java/org/springframework/samples/petclinic/Pet.java
@@ -19,6 +19,7 @@ import org.hibernate.annotations.Type;
 import org.joda.time.DateTime;
 import org.springframework.beans.support.MutableSortDefinition;
 import org.springframework.beans.support.PropertyComparator;
+import org.springframework.format.annotation.DateTimeFormat;
 
 /**
  * Simple JavaBean business object representing a pet.
@@ -32,6 +33,7 @@ public class Pet extends NamedEntity {
 
 	@Column(name="birth_date")
 	@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentDateTime")
+	@DateTimeFormat(pattern="yyyy/MM/dd")
 	private DateTime birthDate;
 
 	@ManyToOne
diff --git a/src/main/java/org/springframework/samples/petclinic/web/ClinicBindingInitializer.java b/src/main/java/org/springframework/samples/petclinic/web/ClinicBindingInitializer.java
deleted file mode 100644
index 0751d6c52a36461527280f0be2ca28b0d85de191..0000000000000000000000000000000000000000
--- a/src/main/java/org/springframework/samples/petclinic/web/ClinicBindingInitializer.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.springframework.samples.petclinic.web;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.propertyeditors.StringTrimmerEditor;
-import org.springframework.samples.petclinic.PetType;
-import org.springframework.samples.petclinic.service.ClinicService;
-import org.springframework.web.bind.WebDataBinder;
-import org.springframework.web.bind.support.WebBindingInitializer;
-import org.springframework.web.context.request.WebRequest;
-
-/**
- * Shared WebBindingInitializer for PetClinic's custom editors.
- *
- * <p>Alternatively, such init-binder code may be put into
- * {@link org.springframework.web.bind.annotation.InitBinder}
- * annotated methods on the controller classes themselves.
- *
- * @author Juergen Hoeller
- */
-public class ClinicBindingInitializer implements WebBindingInitializer {
-
-	@Autowired
-	private ClinicService clinicService;
-
-	public void initBinder(WebDataBinder binder, WebRequest request) {
-		binder.registerCustomEditor(String.class, new StringTrimmerEditor(false));
-		binder.registerCustomEditor(PetType.class, new PetTypeEditor(this.clinicService));
-	}
-
-}
diff --git a/src/main/java/org/springframework/samples/petclinic/web/PetTypeEditor.java b/src/main/java/org/springframework/samples/petclinic/web/PetTypeEditor.java
deleted file mode 100644
index 801442576ba5ebf7451cbcd22f5a05b7812acfe8..0000000000000000000000000000000000000000
--- a/src/main/java/org/springframework/samples/petclinic/web/PetTypeEditor.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package org.springframework.samples.petclinic.web;
-
-import java.beans.PropertyEditorSupport;
-
-import org.springframework.samples.petclinic.PetType;
-import org.springframework.samples.petclinic.service.ClinicService;
-
-/**
- * @author Mark Fisher
- * @author Juergen Hoeller
- */
-public class PetTypeEditor extends PropertyEditorSupport {
-
-	private final ClinicService clinicService;
-
-
-	public PetTypeEditor(ClinicService clinicService) {
-		this.clinicService = clinicService;
-	}
-
-	@Override
-	public void setAsText(String text) throws IllegalArgumentException {
-		for (PetType type : this.clinicService.findPetTypes()) {
-			if (type.getName().equals(text)) {
-				setValue(type);
-			}
-		}
-	}
-
-}
diff --git a/src/main/java/org/springframework/samples/petclinic/web/PetTypeFormatter.java b/src/main/java/org/springframework/samples/petclinic/web/PetTypeFormatter.java
new file mode 100644
index 0000000000000000000000000000000000000000..aad2e9d01be05e09e7e6dd27e35567476866cf13
--- /dev/null
+++ b/src/main/java/org/springframework/samples/petclinic/web/PetTypeFormatter.java
@@ -0,0 +1,44 @@
+package org.springframework.samples.petclinic.web;
+
+
+import java.text.ParseException;
+import java.util.Collection;
+import java.util.Locale;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.format.Formatter;
+import org.springframework.samples.petclinic.PetType;
+import org.springframework.samples.petclinic.service.ClinicService;
+
+/**
+ * @author Mark Fisher
+ * @author Juergen Hoeller
+ * @author Michael Isvy
+ */
+public class PetTypeFormatter implements Formatter<PetType> {
+
+	private final ClinicService clinicService;
+
+
+	@Autowired
+	public PetTypeFormatter(ClinicService clinicService) {
+		this.clinicService = clinicService;
+	}
+
+	@Override
+	public String print(PetType petType, Locale locale) {
+		return petType.getName();
+	}
+
+	@Override
+	public PetType parse(String text, Locale locale) throws ParseException {
+		Collection<PetType> findPetTypes = this.clinicService.findPetTypes();
+		for (PetType type : findPetTypes) {
+			if (type.getName().equals(text)) {
+				return type;
+			}
+		}
+		throw new ParseException("type not found: "+text, 0);
+	}
+
+}
diff --git a/src/main/resources/log4j.xml b/src/main/resources/log4j.xml
index 40506650ead82bfd0e467bc713c62673e339f21e..c39d78d7427d81538f11d4d08f748c9bdbba1c4f 100755
--- a/src/main/resources/log4j.xml
+++ b/src/main/resources/log4j.xml
@@ -11,21 +11,6 @@
 		</layout>
 	</appender>
 
-	<logger name="org.springframework.web">
-		<level value="debug" />
-	</logger>
-	
-	<logger name="org.springframework.jdbc">
-		<level value="info" />
-	</logger>
-	
-	<logger name="javax.validation">
-		<level value="debug" />
-	</logger>
-	
-	<logger name="org.hibernate.validator">
-		<level value="debug" />
-	</logger>
 	
 	<!-- Root Logger -->
 	<root>
diff --git a/src/main/webapp/WEB-INF/jsp/pets/createOrUpdatePetForm.jsp b/src/main/webapp/WEB-INF/jsp/pets/createOrUpdatePetForm.jsp
index b118a6fc37cdd2f56186d3382cecfa1ceeef5cb9..80042eec6efee6479703e8bbb89dada5f1fd4451 100644
--- a/src/main/webapp/WEB-INF/jsp/pets/createOrUpdatePetForm.jsp
+++ b/src/main/webapp/WEB-INF/jsp/pets/createOrUpdatePetForm.jsp
@@ -10,7 +10,7 @@
 
 <script>
 	$(function() {
-		$("#birthDate").datepicker();
+		$("#birthDate").datepicker({ dateFormat: 'yy/mm/dd'});
 	});
 </script>
 	<div class="container">
@@ -44,7 +44,7 @@
 					</div>
 				</div>
 				<div class="control-group">
-					<label class="control-label">Birth Date (yyyy-MM-dd)</label>
+					<label class="control-label">Birth Date</label>
 					<div class="controls">
 						<form:input path="birthDate" />
 						<span class="help-inline"><form:errors path="birthDate" /></span>
diff --git a/src/main/webapp/WEB-INF/petclinic-servlet.xml b/src/main/webapp/WEB-INF/petclinic-servlet.xml
index dbb255a2a80f0d4e0498a2769ea978cb08f47eeb..485b73d7eecb846eb9006d1a8daf745099fa7b76 100644
--- a/src/main/webapp/WEB-INF/petclinic-servlet.xml
+++ b/src/main/webapp/WEB-INF/petclinic-servlet.xml
@@ -16,7 +16,7 @@
 	<context:component-scan base-package="org.springframework.samples.petclinic.web, org.springframework.samples.petclinic.service"/>
 	
 	
-	 <mvc:annotation-driven  />
+	 <mvc:annotation-driven  conversion-service="conversionService"/>
 	
 	<!--  all resources inside folder src/main/webapp/resources are mapped so they can be refered to inside JSP files
 		(see header.jsp for more details) -->
@@ -28,6 +28,15 @@
 	<mvc:view-controller path="/" view-name="welcome"/>
 	
 	
+	<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
+		<property name="formatters">
+			<set>
+				<bean class="org.springframework.samples.petclinic.web.PetTypeFormatter" />
+			</set>
+		</property>
+	</bean>
+	
+	
 <!--
 		- This view resolver delegates to the InternalResourceViewResolver and BeanNameViewResolver,
 		- and uses the requested media type to pick a matching view. When the media type is 'text/html',
@@ -76,15 +85,6 @@
 	-->
 	<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource"
 			p:basename="messages/messages"/>
-	
-	<!--
-		Processes annotated handler methods, applying PetClinic-specific request parameter binding. 
-	-->
-	 <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
-		<property name="webBindingInitializer"> 
-			<bean class="org.springframework.samples.petclinic.web.ClinicBindingInitializer"/>
-		</property>
-	</bean>
 
 	<!--
 		- This bean resolves specific types of exceptions to corresponding logical