anchor.diff:  		{"GC Min Heap Size", {bytes, get_gc_info(min_heap_size)}},
   		{"GC FullSweep After", get_gc_info(fullsweep_after)}
   	       ]}],
  -    observer_lib:fill_info(Struct, RawInfo).
  +    case observer_wx:try_rpc(node(Pid), erlang, process_info, [Pid, item_list()]) of
  +	RawInfo when is_list(RawInfo) ->
  +	    observer_lib:fill_info(Struct, RawInfo);
  +	_ ->
  +	    ok
  +    end.
   
   item_list() ->
       [ %% backtrace,
  
positive.code: 		      Number+1}
  	     end,
      Update = fun() ->
  		     {messages,RawMessages} =
  			 observer_wx:try_rpc(node(Pid), erlang, process_info, [Pid, messages]),
  		     {Messages,_} = lists:mapfoldl(Format, 1, RawMessages),
  		     Last = wxTextCtrl:getLastPosition(Text),
  		     wxTextCtrl:remove(Text, 0, Last),
  		     case Messages =:= [] of
  			 true ->
  			     wxTextCtrl:writeText(Text, "No messages");
  			 false ->
  			     wxTextCtrl:writeText(Text, Messages)
  		     end
  	     end,
      Update(),
  
negative.code: init_dict_page(Parent, Pid) ->
      Text = init_text_page(Parent),
      Update = fun() ->
  		     case observer_wx:try_rpc(node(Pid), erlang, process_info, [Pid, dictionary])
  		     of
  			 {dictionary,RawDict} ->
  			     Dict = [io_lib:format("~-20.w ~p~n", [K, V]) || {K, V} <- RawDict],
  			     Last = wxTextCtrl:getLastPosition(Text),
  			     wxTextCtrl:remove(Text, 0, Last),
  			     wxTextCtrl:writeText(Text, Dict);
  			 _ -> ok
  		     end
  	     end,
      Update(),
      {Text, Update}.
  