diff --git a/bigbytes.go b/bigbytes.go
index 67ea5c8..d4fb371 100644
--- a/bigbytes.go
+++ b/bigbytes.go
@@ -138,15 +138,24 @@
 // ParseBigBytes("42mib") -> 44040192, nil
 func ParseBigBytes(s string) (*big.Int, error) {
 	lastDigit := 0
+	hasComma := false
 	for _, r := range s {
-		if !(unicode.IsDigit(r) || r == '.') {
+		if !(unicode.IsDigit(r) || r == '.' || r == ',') {
 			break
 		}
+		if r == ',' {
+			hasComma = true
+		}
 		lastDigit++
 	}
 
+	num := s[:lastDigit]
+	if hasComma {
+		num = strings.Replace(num, ",", "", -1)
+	}
+
 	val := &big.Rat{}
-	_, err := fmt.Sscanf(s[:lastDigit], "%f", val)
+	_, err := fmt.Sscanf(num, "%f", val)
 	if err != nil {
 		return nil, err
 	}
diff --git a/bigbytes_test.go b/bigbytes_test.go
index 88eed45..236ad08 100644
--- a/bigbytes_test.go
+++ b/bigbytes_test.go
@@ -40,6 +40,7 @@
 		{"42.5Mi", 44564480},
 		{"42.5 M", 42500000},
 		{"42.5 Mi", 44564480},
+		{"1,005.03 MB", 1005030000},
 		// Large testing, breaks when too much larger than
 		// this.
 		{"12.5 EB", uint64(12.5 * float64(EByte))},
diff --git a/bytes.go b/bytes.go
index dacbb9c..190ab65 100644
--- a/bytes.go
+++ b/bytes.go
@@ -109,14 +109,23 @@
 // ParseBytes("42mib") -> 44040192, nil
 func ParseBytes(s string) (uint64, error) {
 	lastDigit := 0
+	hasComma := false
 	for _, r := range s {
-		if !(unicode.IsDigit(r) || r == '.') {
+		if !(unicode.IsDigit(r) || r == '.' || r == ',') {
 			break
 		}
+		if r == ',' {
+			hasComma = true
+		}
 		lastDigit++
 	}
 
-	f, err := strconv.ParseFloat(s[:lastDigit], 64)
+	num := s[:lastDigit]
+	if hasComma {
+		num = strings.Replace(num, ",", "", -1)
+	}
+
+	f, err := strconv.ParseFloat(num, 64)
 	if err != nil {
 		return 0, err
 	}
diff --git a/bytes_test.go b/bytes_test.go
index 99cad92..0bb811c 100644
--- a/bytes_test.go
+++ b/bytes_test.go
@@ -39,6 +39,8 @@
 		{"42.5Mi", 44564480},
 		{"42.5 M", 42500000},
 		{"42.5 Mi", 44564480},
+		// Bug #42
+		{"1,005.03 MB", 1005030000},
 		// Large testing, breaks when too much larger than
 		// this.
 		{"12.5 EB", uint64(12.5 * float64(EByte))},
