diff --git a/src/applications/phame/controller/blog/PhameBlogManageController.php b/src/applications/phame/controller/blog/PhameBlogManageController.php
index bad4533638..42aec0223c 100644
--- a/src/applications/phame/controller/blog/PhameBlogManageController.php
+++ b/src/applications/phame/controller/blog/PhameBlogManageController.php
@@ -1,200 +1,205 @@
 <?php
 
 final class PhameBlogManageController extends PhameBlogController {
 
   public function shouldAllowPublic() {
     return true;
   }
 
   public function handleRequest(AphrontRequest $request) {
     $viewer = $request->getViewer();
     $id = $request->getURIData('id');
 
     $blog = id(new PhameBlogQuery())
       ->setViewer($viewer)
       ->withIDs(array($id))
       ->needProfileImage(true)
       ->executeOne();
     if (!$blog) {
       return new Aphront404Response();
     }
 
     if ($blog->isArchived()) {
       $header_icon = 'fa-ban';
       $header_name = pht('Archived');
       $header_color = 'dark';
     } else {
       $header_icon = 'fa-check';
       $header_name = pht('Active');
       $header_color = 'bluegrey';
     }
 
     $picture = $blog->getProfileImageURI();
 
     $header = id(new PHUIHeaderView())
       ->setHeader($blog->getName())
       ->setUser($viewer)
       ->setPolicyObject($blog)
       ->setImage($picture)
       ->setStatus($header_icon, $header_color, $header_name);
 
     $actions = $this->renderActions($blog, $viewer);
     $properties = $this->renderProperties($blog, $viewer, $actions);
 
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addTextCrumb(
       pht('Blogs'),
       $this->getApplicationURI('blog/'));
     $crumbs->addTextCrumb(
       $blog->getName());
 
     $object_box = id(new PHUIObjectBoxView())
       ->setHeader($header)
       ->addPropertyList($properties);
 
     $timeline = $this->buildTransactionTimeline(
       $blog,
       new PhameBlogTransactionQuery());
     $timeline->setShouldTerminate(true);
 
     return $this->newPage()
       ->setTitle($blog->getName())
       ->setCrumbs($crumbs)
       ->appendChild(
         array(
           $object_box,
           $timeline,
       ));
   }
 
   private function renderProperties(
     PhameBlog $blog,
     PhabricatorUser $viewer,
     PhabricatorActionListView $actions) {
 
     require_celerity_resource('aphront-tooltip-css');
     Javelin::initBehavior('phabricator-tooltips');
 
     $properties = id(new PHUIPropertyListView())
       ->setUser($viewer)
       ->setObject($blog)
       ->setActionList($actions);
 
-    $properties->addProperty(
-      pht('Skin'),
-      $blog->getSkin());
+    $skin = $blog->getSkin();
+    if (!$skin) {
+      $skin = pht('(No external skin)');
+    }
 
-    $properties->addProperty(
-      pht('Domain'),
-      $blog->getDomain());
+    $domain = $blog->getDomain();
+    if (!$domain) {
+      $domain = pht('(No external domain)');
+    }
+
+    $properties->addProperty(pht('Skin'), $skin);
+    $properties->addProperty(pht('Domain'), $domain);
 
     $feed_uri = PhabricatorEnv::getProductionURI(
       $this->getApplicationURI('blog/feed/'.$blog->getID().'/'));
     $properties->addProperty(
       pht('Atom URI'),
       javelin_tag('a',
         array(
           'href' => $feed_uri,
           'sigil' => 'has-tooltip',
           'meta' => array(
             'tip' => pht('Atom URI does not support custom domains.'),
             'size' => 320,
           ),
         ),
         $feed_uri));
 
     $descriptions = PhabricatorPolicyQuery::renderPolicyDescriptions(
       $viewer,
       $blog);
 
     $properties->addProperty(
       pht('Editable By'),
       $descriptions[PhabricatorPolicyCapability::CAN_EDIT]);
 
     $engine = id(new PhabricatorMarkupEngine())
       ->setViewer($viewer)
       ->addObject($blog, PhameBlog::MARKUP_FIELD_DESCRIPTION)
       ->process();
 
     $properties->invokeWillRenderEvent();
 
     if (strlen($blog->getDescription())) {
       $description = PhabricatorMarkupEngine::renderOneObject(
         id(new PhabricatorMarkupOneOff())->setContent($blog->getDescription()),
         'default',
         $viewer);
       $properties->addSectionHeader(
         pht('Description'),
         PHUIPropertyListView::ICON_SUMMARY);
       $properties->addTextContent($description);
     }
 
     return $properties;
   }
 
   private function renderActions(PhameBlog $blog, PhabricatorUser $viewer) {
     $actions = id(new PhabricatorActionListView())
       ->setObject($blog)
       ->setObjectURI($this->getRequest()->getRequestURI())
       ->setUser($viewer);
 
     $can_edit = PhabricatorPolicyFilter::hasCapability(
       $viewer,
       $blog,
       PhabricatorPolicyCapability::CAN_EDIT);
 
     $actions->addAction(
       id(new PhabricatorActionView())
         ->setIcon('fa-plus')
         ->setHref($this->getApplicationURI('post/edit/?blog='.$blog->getID()))
         ->setName(pht('Write Post'))
         ->setDisabled(!$can_edit)
         ->setWorkflow(!$can_edit));
 
     $actions->addAction(
       id(new PhabricatorActionView())
         ->setUser($viewer)
         ->setIcon('fa-globe')
         ->setHref($blog->getLiveURI())
         ->setName(pht('View Live')));
 
     $actions->addAction(
       id(new PhabricatorActionView())
         ->setIcon('fa-pencil')
         ->setHref($this->getApplicationURI('blog/edit/'.$blog->getID().'/'))
         ->setName(pht('Edit Blog'))
         ->setDisabled(!$can_edit)
         ->setWorkflow(!$can_edit));
 
     $actions->addAction(
       id(new PhabricatorActionView())
         ->setIcon('fa-picture-o')
         ->setHref($this->getApplicationURI('blog/picture/'.$blog->getID().'/'))
         ->setName(pht('Edit Blog Picture'))
         ->setDisabled(!$can_edit)
         ->setWorkflow(!$can_edit));
 
     if ($blog->isArchived()) {
       $actions->addAction(
         id(new PhabricatorActionView())
           ->setName(pht('Activate Blog'))
           ->setIcon('fa-check')
           ->setHref(
             $this->getApplicationURI('blog/archive/'.$blog->getID().'/'))
           ->setDisabled(!$can_edit)
           ->setWorkflow(true));
     } else {
       $actions->addAction(
         id(new PhabricatorActionView())
           ->setName(pht('Archive Blog'))
           ->setIcon('fa-ban')
           ->setHref(
             $this->getApplicationURI('blog/archive/'.$blog->getID().'/'))
           ->setDisabled(!$can_edit)
           ->setWorkflow(true));
     }
 
     return $actions;
   }
 
 }
diff --git a/src/applications/phame/controller/blog/PhameBlogProfilePictureController.php b/src/applications/phame/controller/blog/PhameBlogProfilePictureController.php
index 33eec9f478..b41e7a5187 100644
--- a/src/applications/phame/controller/blog/PhameBlogProfilePictureController.php
+++ b/src/applications/phame/controller/blog/PhameBlogProfilePictureController.php
@@ -1,218 +1,218 @@
 <?php
 
 final class PhameBlogProfilePictureController
   extends PhameBlogController {
 
   public function shouldRequireAdmin() {
     return false;
   }
 
   public function handleRequest(AphrontRequest $request) {
     $viewer = $request->getViewer();
     $id = $request->getURIData('id');
 
     $blog = id(new PhameBlogQuery())
       ->setViewer($viewer)
       ->withIDs(array($id))
       ->needProfileImage(true)
       ->requireCapabilities(
         array(
           PhabricatorPolicyCapability::CAN_VIEW,
           PhabricatorPolicyCapability::CAN_EDIT,
         ))
       ->executeOne();
     if (!$blog) {
       return new Aphront404Response();
     }
 
-    $blog_uri = '/phame/blog/view/'.$id;
+    $blog_uri = '/phame/blog/manage/'.$id;
 
     $supported_formats = PhabricatorFile::getTransformableImageFormats();
     $e_file = true;
     $errors = array();
 
     if ($request->isFormPost()) {
       $phid = $request->getStr('phid');
       $is_default = false;
       if ($phid == PhabricatorPHIDConstants::PHID_VOID) {
         $phid = null;
         $is_default = true;
       } else if ($phid) {
         $file = id(new PhabricatorFileQuery())
           ->setViewer($viewer)
           ->withPHIDs(array($phid))
           ->executeOne();
       } else {
         if ($request->getFileExists('picture')) {
           $file = PhabricatorFile::newFromPHPUpload(
             $_FILES['picture'],
             array(
               'authorPHID' => $viewer->getPHID(),
               'canCDN' => true,
             ));
         } else {
           $e_file = pht('Required');
           $errors[] = pht(
             'You must choose a file when uploading a new blog picture.');
         }
       }
 
       if (!$errors && !$is_default) {
         if (!$file->isTransformableImage()) {
           $e_file = pht('Not Supported');
           $errors[] = pht(
             'This server only supports these image formats: %s.',
             implode(', ', $supported_formats));
         } else {
           $xform = PhabricatorFileTransform::getTransformByKey(
             PhabricatorFileThumbnailTransform::TRANSFORM_PROFILE);
           $xformed = $xform->executeTransform($file);
         }
       }
 
       if (!$errors) {
         if ($is_default) {
           $blog->setProfileImagePHID(null);
         } else {
           $blog->setProfileImagePHID($xformed->getPHID());
           $xformed->attachToObject($blog->getPHID());
         }
         $blog->save();
         return id(new AphrontRedirectResponse())->setURI($blog_uri);
       }
     }
 
     $title = pht('Edit Blog Picture');
 
     $form = id(new PHUIFormLayoutView())
       ->setUser($viewer);
 
     $default_image = PhabricatorFile::loadBuiltin($viewer, 'blog.png');
 
     $images = array();
 
     $current = $blog->getProfileImagePHID();
     $has_current = false;
     if ($current) {
       $files = id(new PhabricatorFileQuery())
         ->setViewer($viewer)
         ->withPHIDs(array($current))
         ->execute();
       if ($files) {
         $file = head($files);
         if ($file->isTransformableImage()) {
           $has_current = true;
           $images[$current] = array(
             'uri' => $file->getBestURI(),
             'tip' => pht('Current Picture'),
           );
         }
       }
     }
 
     $images[PhabricatorPHIDConstants::PHID_VOID] = array(
       'uri' => $default_image->getBestURI(),
       'tip' => pht('Default Picture'),
     );
 
     require_celerity_resource('people-profile-css');
     Javelin::initBehavior('phabricator-tooltips', array());
 
     $buttons = array();
     foreach ($images as $phid => $spec) {
       $button = javelin_tag(
         'button',
         array(
           'class' => 'grey profile-image-button',
           'sigil' => 'has-tooltip',
           'meta' => array(
             'tip' => $spec['tip'],
             'size' => 300,
           ),
         ),
         phutil_tag(
           'img',
           array(
             'height' => 50,
             'width' => 50,
             'src' => $spec['uri'],
           )));
 
       $button = array(
         phutil_tag(
           'input',
           array(
             'type'  => 'hidden',
             'name'  => 'phid',
             'value' => $phid,
           )),
         $button,
       );
 
       $button = phabricator_form(
         $viewer,
         array(
           'class' => 'profile-image-form',
           'method' => 'POST',
         ),
         $button);
 
       $buttons[] = $button;
     }
 
     if ($has_current) {
       $form->appendChild(
         id(new AphrontFormMarkupControl())
           ->setLabel(pht('Current Picture'))
           ->setValue(array_shift($buttons)));
     }
 
     $form->appendChild(
       id(new AphrontFormMarkupControl())
         ->setLabel(pht('Use Picture'))
         ->setValue($buttons));
 
     $form_box = id(new PHUIObjectBoxView())
       ->setHeaderText($title)
       ->setFormErrors($errors)
       ->setForm($form);
 
     $upload_form = id(new AphrontFormView())
       ->setUser($viewer)
       ->setEncType('multipart/form-data')
       ->appendChild(
         id(new AphrontFormFileControl())
           ->setName('picture')
           ->setLabel(pht('Upload Picture'))
           ->setError($e_file)
           ->setCaption(
             pht('Supported formats: %s', implode(', ', $supported_formats))))
       ->appendChild(
         id(new AphrontFormSubmitControl())
           ->addCancelButton($blog_uri)
           ->setValue(pht('Upload Picture')));
 
     $upload_box = id(new PHUIObjectBoxView())
       ->setHeaderText(pht('Upload New Picture'))
       ->setForm($upload_form);
 
     $crumbs = $this->buildApplicationCrumbs();
     $crumbs->addTextCrumb(
       pht('Blogs'),
       $this->getApplicationURI('blog/'));
     $crumbs->addTextCrumb(
       $blog->getName(),
       $this->getApplicationURI('blog/view/'.$id));
     $crumbs->addTextCrumb(pht('Blog Picture'));
 
     return $this->newPage()
       ->setTitle($title)
       ->setCrumbs($crumbs)
       ->appendChild(
         array(
           $form_box,
           $upload_box,
       ));
 
   }
 }
diff --git a/src/applications/phame/view/PhamePostListView.php b/src/applications/phame/view/PhamePostListView.php
index b493dcc3e6..e8272d81bf 100644
--- a/src/applications/phame/view/PhamePostListView.php
+++ b/src/applications/phame/view/PhamePostListView.php
@@ -1,110 +1,111 @@
 <?php
 
 final class PhamePostListView extends AphrontTagView {
 
   private $posts;
   private $nodata;
   private $viewer;
   private $showBlog = false;
 
   public function setPosts($posts) {
     assert_instances_of($posts, 'PhamePost');
     $this->posts = $posts;
     return $this;
   }
 
   public function setNodata($nodata) {
     $this->nodata = $nodata;
     return $this;
   }
 
   public function showBlog($show) {
     $this->showBlog = $show;
     return $this;
   }
 
   public function setViewer($viewer) {
     $this->viewer = $viewer;
     return $this;
   }
 
   protected function getTagAttributes() {
     return array();
   }
 
   protected function getTagContent() {
     $viewer = $this->viewer;
     $posts = $this->posts;
     $nodata = $this->nodata;
 
     $handle_phids = array();
     foreach ($posts as $post) {
       $handle_phids[] = $post->getBloggerPHID();
       if ($post->getBlog()) {
         $handle_phids[] = $post->getBlog()->getPHID();
       }
     }
     $handles = $viewer->loadHandles($handle_phids);
 
     $list = array();
     foreach ($posts as $post) {
       $blogger = $handles[$post->getBloggerPHID()]->renderLink();
       $blogger_uri = $handles[$post->getBloggerPHID()]->getURI();
       $blogger_image = $handles[$post->getBloggerPHID()]->getImageURI();
 
       $phame_post = null;
       if ($post->getBody()) {
         $phame_post = PhabricatorMarkupEngine::summarize($post->getBody());
         $phame_post = new PHUIRemarkupView($viewer, $phame_post);
       } else {
-        $phame_post = phutil_tag('em', array(), pht('Empty Post'));
+        $phame_post = phutil_tag('em', array(), pht('(Empty Post)'));
       }
 
       $blogger = phutil_tag('strong', array(), $blogger);
       $date = phabricator_datetime($post->getDatePublished(), $viewer);
 
       $blog = null;
       if ($post->getBlog()) {
         $blog = phutil_tag(
           'a',
           array(
             'href' => '/phame/blog/view/'.$post->getBlog()->getID().'/',
           ),
           $post->getBlog()->getName());
       }
 
       if ($this->showBlog && $blog) {
         if ($post->isDraft()) {
           $subtitle = pht('Unpublished draft by %s in %s.', $blogger, $blog);
         } else {
           $subtitle = pht('By %s on %s in %s.', $blogger, $date, $blog);
         }
       } else {
         if ($post->isDraft()) {
           $subtitle = pht('Unpublished draft by %s.', $blogger);
         } else {
           $subtitle = pht('Written by %s on %s.', $blogger, $date);
         }
       }
 
       $item = id(new PHUIDocumentSummaryView())
         ->setTitle($post->getTitle())
         ->setHref('/phame/post/view/'.$post->getID().'/')
         ->setSubtitle($subtitle)
         ->setImage($blogger_image)
         ->setImageHref($blogger_uri)
         ->setSummary($phame_post)
         ->setDraft($post->isDraft());
 
       $list[] = $item;
     }
 
     if (empty($list)) {
       $list = id(new PHUIInfoView())
+        ->setSeverity(PHUIInfoView::SEVERITY_NODATA)
         ->appendChild($nodata);
     }
 
     return $list;
   }
 
 }