diff --git a/panels_ref_formatter.module b/panels_ref_formatter.module
index 91c62aa..7f42308 100644
--- a/panels_ref_formatter.module
+++ b/panels_ref_formatter.module
@@ -49,7 +49,10 @@ function panels_ref_formatter_field_formatter_view($entity_type, $entity, $field
   // @todo it seems like the references module loads most of the stuff for us, so we need to figure out
   // if we can do anything smarter here.
   foreach ($items as $delta => $item) {
-    $ids[$delta] = panels_ref_formatter_get_entity_id($field, $item);
+    $eid = panels_ref_formatter_get_entity_id($field, $item);
+    if ($eid) {
+      $ids[$delta] = $eid;      
+    }    
   }
   // Reset our rendered entities array if we are not in a recursion situation.
   if (!isset($entity->referencing_entity)) {
@@ -71,6 +74,10 @@ function panels_ref_formatter_field_formatter_view($entity_type, $entity, $field
         $panel->display->owner->id = $panel->name;
         $row->additional_info = $panel->context;
         $element[$delta]['#markup'] = panels_render_display($panel->display);
+        if (!$entity->status) {
+          $element[$delta]['#prefix'] = '<span class="node-unpublished">';
+          $element[$delta]['#suffix'] = '</span>';
+        }
       }
       else {
         $entity = $item[$entity_type];
@@ -131,7 +138,10 @@ function panels_ref_formatter_get_entity_id($field, $item) {
   switch ($field['type']) {
     case 'node_reference': case 'user_reference':
       $type = panels_ref_formatter_get_entity_type($field);
-      return current(entity_extract_ids($type, $item[$type]));
+      if (!empty($item[$type])) {
+        return current(entity_extract_ids($type, $item[$type]));
+      }
+      return FALSE;
     case 'entityreference':
       return $item['target_id'];
     case 'media': case 'file':
