Fix #618

@garyb @joneshf I think this is good to go, other than adding a few more tests. Could you please review?
Is there a reason for these two changes from as-patterns to reconstructing the value? I'm not sure if i'm missing something (like a slight name change) or if this was something being changed and forgotten about? It seems either way is fine, just not clear why the change?