Count() returns 0 with pagination > 1, else it returns the full result set.
When performing a LIMIT or OFFSET you need to wrap the call to count:

``` python
Commit.select().paginate(1, 5).count() # 8
Commit.select().paginate(1, 5).wrapped_count(False) # 5
```
 Ah understood. I apologize for submitting this. Apparently I assume too much ;)

Is this expected behavior? It seems strange to me, but I acknowledge that there may be some reason for it which I don't fully understand.

Example:

``` python
def print_commits(commits):
    print "="*20
    total = 0
    for c in commits:
        total += 1
        #print c.id
    print "Total:", total, "Count():", commits.count()


commits = md.Commit.select().paginate(1,5)
print_commits(commits)

commits = md.Commit.select().paginate(2,5)
print_commits(commits)
```

Output:

```
====================
Total: 5 Count(): 8
====================
Total: 3 Count(): 0
```

Expected output:

```
====================
Total: 5 Count(): 5
====================
Total: 3 Count(): 3
```
