A man who got disoriented while running in the Tararua Range on Saturday spent a night in the open, suffering through winter-like conditions, before finding a hutt where he could warm up and get some sleep.
Alastair Shelton, 33, had been missing since Saturday morning when he failed to meet family after a morning run in the hills.
But about 10.30 this morning a helicopter found him, just as he began a three hour walk out of the forest.
Mr Shelton had become disoriented in the South King area - a high point in the Tararua Forest Park - and ended up in the centre of the park, rather than heading out in the opposite direction, Senior Sergeant Tony Matheson said.
"He ended up in the head waters of the Waiohine River, which was at times in flood, and he's taken a couple of falls at various times."
Mr Shelton had an injury to his right foot, which was expected to be a fracture, Mr Matheson said.
"He said at one point he had a particularly nasty experience in the river where he went under."
Wet and lost, he managed to use his map to figure out he was in the Waiohine Valley.
He then tried to find the Waiohine Hut, which he discovered yesterday.
This morning, a helicopter was tasked with checking the hut, where Mr Shelton had left an entry in the log book.
"The helicopter then searched the area that we knew he'd be walking out from, and we found him in the alpine zone.
"He's been through quite a difficult time over the last couple of days," Mr Matheson said.
At times, temperatures in the area dropped to 3 degrees. Rain also pounded the ranges at times.
"He knew that he had to get down low, and it was a lot warmer when he got out of the alpine level and down to the river level...although he was still cold."
Mr Shelton told police he knew he had made some mistakes.
"He knows there's some issues in relation to equipment, in relation to making sure that his intentions are clearly outlined to people waiting to him.
"He'll be certainly changing a few things and how he goes about things in the future."
Mr Shelton was being taken to hospital for a check-up.