anchor.diff:  
   join_table(Rec, _BlockSize, Ti, Table, #scanSpec{sspec=SSpec,sbinds=SBinds,fguard=FGuard,mbinds=MBinds,fbinds=FBinds,limit=Limit}) ->
       % ?Log("Rec used for join bind ~p~n", [Rec]),
  -    [{MatchHead, [Guard0], [Result]}] = SSpec,
  -    Guard1 = join_bind(Rec, Guard0, SBinds),
  +    [{MatchHead, Guard0, [Result]}] = SSpec,
  +    Guard1 = case Guard0 of
  +        [] ->   [];
  +        _ ->    [join_bind(Rec, hd(Guard0), SBinds)]
  +    end,
       MaxSize = Limit+1000,
       % ?Log("Join guard after bind : ~p~n", [Guard1]),
  -    case imem_meta:select(Table, [{MatchHead, [Guard1], [Result]}], MaxSize) of
  +    case imem_meta:select(Table, [{MatchHead, Guard1, [Result]}], MaxSize) of
           {[], true} ->   [];
           {L, true} ->
               case FGuard of
  
positive.code:                     case join_rows([X], FetchCtx0, Stmt) of
                          [] ->
                              TabCount = length(Stmt#statement.tables),
                              Rec = erlang:make_tuple(TabCount+1, undefined, [{1,X},{TabCount+1,MetaRec}]), 
                              {Tag,Rec};
                          [R|_] ->
                              {Tag,R}
                      end
                  end,
                  lists:map(Wrap, KeyUpdateRaw)
          end
      catch
  
negative.code:     Result = gen_server:call(Pid, {update_cursor_execute, IsSec, SKey, optimistic}),
      % ?Log("update_cursor_execute ~p~n", [Result]),
      case Result of
          KeyUpd when is_list(KeyUpd) -> 
              KeyUpd;
          Error ->
              throw(Error)
      end.
  
  close(SKey, #stmtResult{stmtRef=Pid}) ->
  