# Buggy code
def CountUsers(self):
    numusers = len(list(self.users.keys()))
    if numusers > 1:
        self.LabelPeople.show()
        self.LabelPeople.set_text(_("%i people in room") % numusers)
    elif numusers == 1:
        self.LabelPeople.show()
        self.LabelPeople.set_text(_("You are alone"))
    else:
        self.LabelPeople.hide()

    if self.room in self.roomsctrl.rooms:
        iter = self.roomsctrl.roomsmodel.get_iter_first()
        while iter:
            if self.roomsctrl.roomsmodel.get_value(iter, 0) == self.room:
                self.roomsctrl.roomsmodel.set(iter, 1, numusers)
                break
            iter = self.roomsctrl.roomsmodel.iter_next(iter)
    else:
        self.roomsctrl.roomsmodel.append([self.room, numusers, 0])
        self.roomsctrl.rooms.append(self.room)


# Traceback (SystemError)
Thu 07:58 Nicotine+ supports a country code blocker. This requires a (GPL'ed) library called GeoIP. You can find it here: C library:       https://github.com/maxmind/geoip-api-c Python
bindings: https://github.com/maxmind/geoip-api-python (the python bindings require the C library)
Traceback (most recent call last):
File "/usr/local/bin/nicotine", line 255, in <module>
run()
File "/usr/local/bin/nicotine", line 231, in run
app = frame.MainApp(data_dir, config, plugins, trayicon, hidden, bindip, port)
File "/usr/local/lib/python3.7/site-packages/pynicotine/gtkgui/frame.py", line 3595, in __init__
self.frame = NicotineFrame(data_dir, config, plugins, trayicon, start_hidden, bindip, port)
File "/usr/local/lib/python3.7/site-packages/pynicotine/gtkgui/frame.py", line 273, in __init__
config
File "/usr/local/lib/python3.7/site-packages/pynicotine/pynicotine.py", line 130, in __init__
self.shares = Shares(self)
File "/usr/local/lib/python3.7/site-packages/pynicotine/shares.py", line 75, in __init__
self.CompressShares("normal")
File "/usr/local/lib/python3.7/site-packages/pynicotine/shares.py", line 201, in CompressShares
m.makeNetworkMessage(nozlib=0, rebuild=True)
File "/usr/local/lib/python3.7/site-packages/pynicotine/slskmessages.py", line 1709, in makeNetworkMessage
msg = msg + self.packObject(len(list(self.list.keys())))
File "/usr/local/lib/python3.7/_collections_abc.py", line 720, in __iter__
yield from self._mapping
File "/usr/local/lib/python3.7/shelve.py", line 95, in __iter__
for k in self.dict.keys():
SystemError: Negative size passed to PyBytes_FromStringAndSize

# Fixed code
def CountUsers(self):
    numusers = len(self.users)
    if numusers > 1:
        self.LabelPeople.show()
        self.LabelPeople.set_text(_("%i people in room") % numusers)
    elif numusers == 1:
        self.LabelPeople.show()
        self.LabelPeople.set_text(_("You are alone"))
    else:
        self.LabelPeople.hide()

    if self.room in self.roomsctrl.rooms:
        iter = self.roomsctrl.roomsmodel.get_iter_first()
        while iter:
            if self.roomsctrl.roomsmodel.get_value(iter, 0) == self.room:
                self.roomsctrl.roomsmodel.set(iter, 1, numusers)
                break
            iter = self.roomsctrl.roomsmodel.iter_next(iter)
    else:
        self.roomsctrl.roomsmodel.append([self.room, numusers, 0])
        self.roomsctrl.rooms.append(self.room)