diff --git a/src/com/android/contacts/ui/EditContactActivity.java b/src/com/android/contacts/ui/EditContactActivity.java
index 9b380df..51b10c5 100644
--- a/src/com/android/contacts/ui/EditContactActivity.java
+++ b/src/com/android/contacts/ui/EditContactActivity.java
@@ -121,6 +121,7 @@
         mHeader = (ContactHeaderWidget)this.findViewById(R.id.contact_header_widget);
         mHeader.setContactHeaderListener(this);
         mHeader.showStar(true);
+        mHeader.enableClickListeners();
 
         mTabWidget = (ScrollingTabWidget)this.findViewById(R.id.tab_widget);
         mTabWidget.setTabSelectionListener(this);
@@ -402,20 +403,17 @@
     }
 
     /** {@inheritDoc} */
-    public void onDisplayNameLongClick(View view) {
+    public void onDisplayNameClick(View view) {
         if (!hasValidState()) return;
         showAndManageDialog(createNameDialog());
     }
 
     /** {@inheritDoc} */
-    public void onPhotoLongClick(View view) {
+    public void onPhotoClick(View view) {
         if (!hasValidState()) return;
         showAndManageDialog(createPhotoDialog());
     }
 
-
-
-
     /** {@inheritDoc} */
     public void onClick(View view) {
         switch (view.getId()) {
@@ -428,7 +426,6 @@
         }
     }
 
-
     /** {@inheritDoc} */
     @Override
     public void onBackPressed() {
