I searched through the archives and seemed to find some relevant threads on this. From what I read, it may have something to do with trying to unlock the wrong kind of memory. But I still don't quite have a handle (pun intended) on this error.
Here's my code snippet: MissionDB mission; UInt16 index = -1; MemHandle recH; MissionDBPtr recP; UInt16 i, numRecs = DmNumRecords(gDB); mission.level = missionDiff; for (i = 0; i < numRecs; i++) { recH = DmQueryRecord(gDB, i); if (recH) { recP = (MissionDBPtr)MemHandleLock(recH); if (recP->level == mission.level) { index = i; } MemHandleUnlock(recH); if (index != -1) break; } } I'm basically just trying to find the index of the matching record. At the point of the error, I only have 2 records in my DB. I get the 'Free handle' error the 2nd time through the loop. What's really strange is I go through this function once before in the program, and it works fine. Thanks __________________________________ Do you Yahoo!? Yahoo! Calendar - Free online calendar with sync to Outlook(TM). http://calendar.yahoo.com -- For information on using the Palm Developer Forums, or to unsubscribe, please see http://www.palmos.com/dev/support/forums/