The Holux M-241 is a nice unit, but it looks like it cannot store waypoints while you're recording a track.
In fact, if you set it to display latitude and longitude, every time you press enter it stores a track point with the current location. However, after downloading the data with gpsbabel, they are indistinguishable from all the other track points.
If you are not taking a track, this is sufficient: your track will be made by all the waypoints you recorded.
Together with Riccio, another M-241 user, we noticed that if you are taking a track, with one trackpoint per second, then when you press enter in the lat/lon screen you get two track points in the same second: one from the logger, and one from your keypress.
The duplicate timestamp is just enough information to be able to distinguish a waypoint. Here is a little python script that will add a waypoint every time there are two trackpoints with the same timestamp.
#!/usr/bin/python import xml.dom.minidom from xml.dom.minidom import Node import sys def get_text(node): res = "" for n in node.childNodes: if n.nodeType == Node.TEXT_NODE: res += n.data return res.strip() def get_val(node, name): for n in node.childNodes: if n.nodeName == name: return get_text(n) return None doc = xml.dom.minidom.parse(sys.argv) # Scan the document looking for duplicate timestamps wpt =  last_ts = None for node in doc.getElementsByTagName("trkpt"): ts = get_val(node, "time") if last_ts != None and last_ts == ts: wpt.append(node) last_ts = ts # Add the nodes with duplicate timestamps as waypoints if len(wpt) > 0: for i in wpt: node = doc.createElement("wpt") for a in i.attributes.values(): node.setAttribute(a.name, a.value) for n in i.childNodes: node.appendChild(n.cloneNode(True)) doc.documentElement.appendChild(node) doc.writexml(sys.stdout)